Force feeback interface device with touchpad sensor

ABSTRACT

A force feedback mouse interface device connected to a host computer and providing realistic force feedback to a user. The mouse interface device includes a mouse object and a linkage coupled to the mouse that includes a plurality of members rotatably coupled to each other in a planar closed-loop linkage and including two members coupled to ground and rotatable about the same axis. Two actuators, preferably electromagnetic voice coils, provide forces in the two degrees of freedom of the planar workspace of the mouse object. Each of the actuators includes a moveable coil portion integrated with one of the members of the linkage and a magnet portion coupled to the ground surface through which the coil portion moves. The grounded magnet portions of the actuators can be coupled together such that a common flux path between the magnet portions is shared by both magnets. At least one sensor is coupled to the ground surface that detects movement of the linkage and provides a sensor signal including information from which a position of the mouse object in the planar workspace can be determined.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation-in-part of co-pending parentpatent applications Ser. No. 08/560,091, filed Nov. 17, 1995, on behalfof Rosenberg et al., entitled “Method and Apparatus for Providing LowCost Force Feedback and Mechanical I/O for Computer Systems”, and Ser.No. 08/756,745, filed Nov. 26 1996, on behalf of Rosenberg et al.,entitled, “Force Feedback Interface having Isotonic and IsometricFunctionality,” both assigned to the assignee of this presentapplication, and both of which are incorporated by reference herein.

BACKGROUND OF THE INVENTION

[0002] The present invention relates generally to interface devices forallowing humans to interface with computer systems, and moreparticularly to mechanical computer interface devices that allow theuser to provide input to computer systems and provide force feedback tothe user.

[0003] Computer systems are used extensively in many differentindustries to implement many applications, such as word processing, datamanagement, simulations, games, and other tasks. A computer systemtypically displays a visual environment to a user on a display screen orother visual output device. Users can interact with the displayedenvironment to perform functions on the computer, play a game,experience a simulation or “virtual reality” environment, use a computeraided design (CAD) system, browse the World Wide Web, or otherwiseinfluence events or images depicted on the screen.

[0004] One visual environment that is particularly common is a graphicaluser interface (GUI). GUI's present visual images which describe variousgraphical metaphors of a program or operating system implemented on thecomputer. Common GUI's include the Windows® operating system fromMicrosoft Corporation and the MacOS operating system from AppleComputer, Inc. These interfaces allows a user to graphically select andmanipulate functions of the operating system and application programs byusing an input interface device. The user typically moves auser-controlled graphical object, such as a cursor or pointer, across acomputer screen and onto other displayed graphical objects or predefinedscreen regions, and then inputs a command to execute a given selectionor operation. The objects or regions (“targets”) can include, forexample, icons, windows, pull-down menus, buttons, and scroll bars. MostGUI's are currently 2-dimensional as displayed on a computer screen;however, three dimensional (3-D) GUI's that present simulated 3-Denvironments on a 2-D screen can also be provided.

[0005] Other programs or environments that may provide user-controlledgraphical objects such as a cursor include browsers and other programsdisplaying graphical “web pages” or other environments offered on theWorld Wide Web of the Internet, CAD programs, video games, virtualreality simulations, etc. In some graphical computer environments, theuser may provide input to control a 3-D “view” of the graphicalenvironment, i.e., the user-controlled graphical “object” can beconsidered the view displayed on the video screen. The user canmanipulate the interface device to move the view, as if moving a camerathrough which the user is looking. This type of graphical manipulationis common in CAD or 3-D virtual reality applications.

[0006] The user interaction with and manipulation of the computerenvironment is achieved using any of a variety of types ofhuman-computer interface devices that are connected to the computersystem controlling the displayed environment. In most systems, thecomputer updates the environment in response to the user's manipulationof a user-manipulatable physical object (“user object”) that is includedin the interface device, such as a mouse, joystick, trackball, etc. Thecomputer provides visual and audio feedback to the user utilizing thedisplay screen and, typically, audio speakers.

[0007] Another mode of feedback recently introduced to the consumer homemarket is force feedback, which provide the user with sensory “haptic”(feel) information about an environment. Most of the consumer forcefeedback devices are joysticks which include motors to provide theforces to the joystick and to the user. Current force feedback joystickdevices may allow realistic and effective forces to be transmitted to auser; however, the standard joystick device is well-suited for such usesas controlling an aircraft or other simulated vehicle in a simulation orgame, first-person perspective virtual reality applications, or otherrate-control tasks and is not well suited to position control tasks suchas controlling a pointer or cursor in a graphical user interface. Othertypes of controllers, such a mouse, trackball, stylus and tablet, “touchpoint” keyboard pointers, and finger pads are commonly provided forcursor position control tasks since they are adept at accuratelycontrolling the position of a graphical object in two dimensions.Herein, “position control” refers to a direct mapping of the position ofthe user object with a user-controlled graphical object, such ascontrolling a cursor in a GUI, while “rate control” refers to anindirect or abstract mapping of user object to graphical object, such asscrolling text in a window, zooming to a larger view in a window of aGUI, or controlling velocity of a simulated vehicle.

[0008] A problem with the currently-available position control interfacedevices is that none of them offer realistic force feedback. A mouse isnot easily provided with force feedback since the mouse must be moved ina planar workspace and is not easily connected to actuators whichprovide the force feedback. Controllers as trackballs and tablets areeven less well suited for force feedback than a mouse controller due totheir free-floating movement. A joystick, in contrast, is typicallyconnected to an immobile base which can include large actuators neededto provide realistic forces on the joystick. A mouse can be coupled toactuators from a side linkage, but a compact, low cost, andconveniently-positioned mechanism allowing free movement of a mouse aswell as providing realistic force feedback for the mouse has not beenavailable in the consumer market.

SUMMARY OF THE INVENTION

[0009] The present invention is directed to a mouse interface which isconnected to a host computer and provides realistic force feedback to auser. The interface device includes low cost, compact components thatprovide a convenient mouse interface for a desktop.

[0010] More specifically, the present invention provides a mouseinterface device for interfacing a user's motion with a host computerand providing force feedback to the user. The host computer preferablyimplements a graphical environment with which the user interacts usingthe mouse interface device. The mouse interface device includes a userobject, preferably a mouse object, contacted and manipulated by a userand moveable in a planar workspace with respect to a ground surface. Alinkage coupled to the mouse includes a plurality of members rotatablycoupled to each other. In one preferred configuration, the linkage is aplanar closed-loop linkage including two members coupled to ground androtatable about the same axis. Two actuators, preferably electromagneticvoice coil actuators, provide forces in the two degrees of freedom ofthe planar workspace of the mouse object. Each of the actuators includesa moveable coil portion preferably integrated with one of the members ofthe linkage and a magnet portion coupled to the ground surface throughwhich the coil portion moves. The actuators are controlled from commandsoutput by the host computer. Finally, at least one sensor is coupled tothe ground surface that detects movement of a member of the linkage andprovides a sensor signal including information from which a position ofthe mouse object in the planar workspace can be determined.

[0011] The planar linkage may include four members coupled to a groundmember, where a first base member is rotatably coupled to the groundmember, a link member is rotatably coupled to the base member, a secondbase member is rotatably coupled to the ground member, and an objectmember is rotatably coupled to the link member and the second basemember. The mouse object is coupled to the object member and preferablymay rotate with respect to the object member to allow the user easyhandling of the mouse. The members of the linkage are coupled togetherby bearings of the present invention, which may be ball bearingassemblies, snap together bearings, snap together bearings includingball bearings, or V-shaped bearings.

[0012] The coils of the actuators are preferably integrated in themembers of the linkage, for example the base members of the linkage, andmove through magnetic fields provided by the grounded portions. Inaddition, the grounded magnet portions of the actuators are coupledtogether in one embodiment, such that a common flux path between themagnet portions is shared by both magnet portions. In a preferredconfiguration, the first and second base members are coupled to arotation point at a mid point of the base members, where one end of eachbase member integrates said coil such that the coil is spaced from therotation point of said member, thereby providing mechanical advantage toforces generated by the actuator on the base members.

[0013] Many implementations of the sensor can be provided. In oneembodiment, two sensors are provided, where the sensors are digitalencoders that include a grounded portion having an emitter and detectorand a moving portion on one of the members of the linkage including anencoder arc having a number of equally spaced marks provided, where themarks are detected by the grounded portion when the member moves. Inother embodiments, the sensors can be lateral effect photo diodes, anemitter directing a beam to detector using a light pipe, an encodersensor with a friction wheel, or a planar sensor pad. In one embodiment,the planar sensor pad senses a magnitude of force provided against thesensor pad in a direction perpendicular to the two degrees of freedom ofthe mouse object. Also, the wire coils and the grounded magnets of theactuators can be used as the sensor to sense a velocity of the memberson which the coils are provided.

[0014] The mouse object is preferably rotatably coupled to the objectmember to allow convenient use of the mouse for the user such that themouse object rotates about an axis of rotation though the object member,said axis of rotation being perpendicular to the ground surface. A stopmechanism limits movement of the mouse object in the planar workspace toa desired area, and can include a guide opening provided in the groundsurface and a guide pin coupled to the linkage that engages sides of theguide opening to provide the movement limits. A safety switch can beincluded that causes the actuators to be deactivated when the user isnot contacting the mouse object. A local microprocessor, separate fromthe host computer system, is included in the interface device and mayprovide local control over sensing and outputting forces to relieve thecomputational burden on the host computer. The interface device can alsoinclude a support such as a low friction Teflon pad, roller, or othermember separate from the linkage and coupled between the mouse objectand the ground surface for providing extra support to the mouse. Anindexing feature of the present invention allows the user to change theoffset between the position of the mouse object and the location of adisplayed cursor on a display screen.

[0015] The method and apparatus of the present invention provides aforce feedback mouse interface that allows a user to convenientlyinterface with a host computer application program. The actuators,sensors, and linkage of the device, in the embodiments described,provide a compact, simple, low-cost design that outputs realistic forceson the user and accurately tracks the user's motions in the providedworkspace, and is well suited for the consumer market.

[0016] These and other advantages of the present invention will becomeapparent to those skilled in the art upon a reading of the followingspecification of the invention and a study of the several figures of thedrawing.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017]FIG. 1 is a perspective view of one embodiment of a force feedbackmouse interface system of the present invention;

[0018]FIG. 2 is a perspective view of the mouse interface of FIG. 1showing a linkage mechanism, actuators, and sensors of the presentinvention;

[0019]FIG. 2a is a perspective view of a support pad for supporting themouse of FIG. 2;

[0020]FIGS. 3a and 3 b are top plan and side elevational views,respectively, of the mouse interface of FIG. 2;

[0021]FIG. 3c is a side elevational detail view of an actuator magnetassembly of the mouse interface of FIG. 2;

[0022]FIGS. 4a and 4 b is a top plan view of the mouse interface of FIG.2 in which the linkage is moved;

[0023]FIG. 4c is a detailed top plan view of the sensors used in thepresent invention;

[0024]FIG. 4d is a perspective view of an alternate embodiment of themouse interface of FIG. 2;

[0025]FIG. 4e is a perspective view of an alternate sensor having afriction wheel;

[0026]FIG. 4f is a perspective view of an alternate sensor having aplanar sensor pad;

[0027]FIGS. 4g 1 and 4 g 2 are perspective and top plan views,respectively, of an alternate light pipe sensor of the presentinvention;

[0028]FIGS. 4h 1 and 4 h 2 are perspective and top plan views,respectively, of an alternate light pipe sensor to that of FIGS. 4g 1and 4 g 2;

[0029]FIGS. 4i and 4 j are perspective views of alternate sensorsincluding an emitter and detector;

[0030]FIGS. 5a and 5 b are perspective and side elevational views,respectively, of a ball bearing assembly suitable for use in the mouseinterface of the present invention;

[0031]FIG. 5c is a snap bearing of the present invention suitable foruse with the mouse interface of the present invention;

[0032]FIGS. 5d 1 and 5 d 2 are perspective views of an alternate snapbearing of the present invention for use with the mouse interface of thepresent invention;

[0033]FIG. 5e is a top plan view of the snap bearing of FIGS. 5dl and 5d 2;

[0034]FIG. 5f is a side partial sectional view of the rotating bearingassembly of the snap bearing of FIGS. 5dl and 5 d 2;

[0035]FIGS. 5g 1 and 5 g 2 are perspective views of an alternateV-shaped bearing of the present invention for use with the mouseinterface of the present invention;

[0036]FIG. 6 is a block diagram of the system of FIG. 1 for controllinga force feedback interface device of the present invention;

[0037]FIG. 7a is a perspective view of a mouse interface object for usewith the interface system of FIG. 1;

[0038]FIG. 7b is a side elevational view of the mouse of FIG. 7a showinga safety switch;

[0039]FIG. 7c is a diagrammatic illustration of the indexing function ofthe present invention using the mouse of FIG. 7a; and

[0040]FIGS. 8a-8 e are perspective views of alternate embodiments of theinterface object for use with the interface system of FIG. 1.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0041]FIG. 1 is a perspective view of a force feedback mouse interfacesystem 10 of the present invention capable of providing input to a hostcomputer based on the user's manipulation of the mouse and capable ofproviding force feedback to the user of the mouse system based on eventsoccurring in a program implemented by the host computer. Mouse system 10includes a mouse or “puck” 12, an interface 14, and a host computer 18.It should be noted that the term “mouse” as used herein, indicates anobject 12 generally shaped to be grasped or contacted from above andmoved within a substantially planar workspace (and additional degrees offreedom if available). Typically, a mouse is a smooth or angular shapedcompact unit that snugly fits under a user's hand, fingers, and/or palm.

[0042] Mouse 12 is an object that is preferably grasped or gripped andmanipulated by a user. By “grasp,” it is meant that users may releasablyengage a portion of the object in some fashion, such as by hand, withtheir fingertips, etc. For example, images are displayed and/or modifiedon a display screen 20 of the computer system 18 in response to suchmanipulations. In the described embodiment, mouse 12 is shaped so that auser's fingers or hand may comfortably grasp the object and move it inthe provided degrees of freedom in physical space; an example of auser's hand is shown as dashed line 16. For example, a user can movemouse 12 to correspondingly move a computer generated graphical-object,such as a cursor or other image, in a graphical environment provided bycomputer 18. The available degrees of freedom in which mouse 12 can bemoved are determined from the interface 14, described below. Inaddition, mouse 12 preferably includes one or more buttons 15 to allowthe user to provide additional commands to the computer system. Themouse 12 is described in greater detail with respect to FIGS. 6a-c.

[0043] It will be appreciated that a great number of other types of usermanipulable objects (“user objects” or “physical objects”) can be usedwith the method and apparatus of the present invention in place of or inaddition to mouse 12. For example, such objects may include a sphere, apuck, a joystick, cubical- or other-shaped hand grips, a receptacle forreceiving a finger or a stylus, a flat planar surface like a plasticcard having a rubberized, contoured, and/or bumpy surface, or otherobjects. Some of these other objects, such as a stylus, are described indetail subsequently with respect to FIGS. 8a-e.

[0044] Interface 14 interfaces mechanical and electrical input andoutput between the mouse 12 and host computer 18 implementing theapplication program, such as a GUI, simulation or game environment.Interface 14 provides multiple degrees of freedom to mouse 12; in thepreferred embodiment, two linear, planar degrees of freedom are providedto the mouse, as shown by arrows 22. In other embodiments, greater orfewer degrees of freedom can be provided, as well as rotary degrees offreedom. For many applications, mouse 12 need only be moved in a verysmall workspace area, shown as dashed line 24 in FIG. 1 as an example.This is described in greater detail with respect to FIG. 7c.

[0045] In a preferred embodiment, the user manipulates mouse 12 in aplanar workspace, much like a traditional mouse, and the position ofmouse 12 is translated into a form suitable for interpretation byposition sensors of the interface 14. The sensors track the movement ofthe mouse 12 in planar space and provide suitable electronic signals toan electronic portion of interface 14. The interface 14 providesposition information to host computer 18. In addition, host computer 18and/or interface 14 provide force feedback signals to actuators coupledto interface 14, and the actuators generate forces on members of themechanical portion of the interface 14 to provide forces on mouse 12 inprovided or desired degrees of freedom. The user experiences the forcesgenerated on the mouse 12 as realistic simulations of force sensationssuch as jolts, springs, textures, “barrier” forces, and the like.

[0046] For example, a rigid surface is generated on computer screen 20and a computer object (e.g., cursor) controlled by the user collideswith the surface. In a preferred embodiment, high-level host commandscan be used to provide the various forces associated with the rigidsurface. The local control mode using microprocessor 130 can be helpfulin increasing the response time for forces applied to the user object,which is essential in creating realistic and accurate force feedback.For example, it is preferable that host computer 18 send a “spatialrepresentation” to microprocessor 200, which is data describing thelocations of some or all the graphical objects displayed in a GUI orother graphical environment which are associated with forces and thetypes/characteristics of these graphical objects. The microprocessor canstore such a spatial representation in memory 204, and thus will be ableto determine interactions between the user object and graphical objects(such as the rigid surface) independently of the host computer. Inaddition, the microprocessor 200 can be provided with the necessaryinstructions or data to check sensor readings, determine cursor andtarget positions, and determine output forces independently of hostcomputer 18. The host could implement program functions (such asdisplaying images) when appropriate, and synchronization commands can becommunicated between processor 200 and host 18 to correlate themicroprocessor and host processes. Also, memory 204 can storepredetermined force sensations for microprocessor 200 that are to beassociated with particular types of graphical objects. Alternatively,the computer 18 can directly send force feedback signals to theinterface 14 to generate forces on mouse 12.

[0047] The electronic portion of interface 14 may couple the mechanicalportion of the interface to the host computer 18. The electronic portionis preferably included within the housing 26 of the interface 14 or,alternatively, the electronic portion may be included in host computer18 or as a separate unit with its own housing. More particularly,interface 14 includes a local microprocessor distinct and separate fromany microprocessors in the host computer 18 to control force feedback onmouse 12 independently of the host computer, as well as sensor andactuator interfaces that convert electrical signals to appropriate formsusable by the mechanical portion of interface 14 and host computer 18. Asuitable embodiment of the electrical portion of interface 14 isdescribed in detail with reference to FIG. 6.

[0048] The interface 14 can be coupled to the computer 18 by a bus 17,which communicates signals between interface 14 and computer 18 andalso, in the preferred embodiment, provides power to the interface 14(e.g. when bus 17 includes a USB interface). In other embodiments,signals can be sent between interface 14 and computer 18 by wirelesstransmission/reception. In preferred embodiments of the presentinvention, the interface 14 serves as an input/output (I/O) device forthe computer 18. The interface 14 can also receive inputs from otherinput devices or controls that are associated mouse system 10 and canrelay those inputs to computer 18. For example, commands sent by theuser activating a button on mouse 12 can be relayed to computer 18 byinterface 14 to implement a command or cause the computer 18 to output acommand to the interface 14. Such input devices are described in greaterdetail with respect to FIGS. 5 and 6.

[0049] Host computer 18 is preferably a personal computer orworkstation, such as an IBM-PC compatible computer or Macintosh personalcomputer, or a SUN or Silicon Graphics workstation. For example, thecomputer 18 can operate under the Windows™ or MS-DOS operating system inconformance with an IBM PC AT standard. Alternatively, host computersystem 18 can be one of a variety of home video game systems commonlyconnected to a television set, such as systems available from Nintendo,Sega, or Sony. In other embodiments, home computer system 18 can be a“set top box” which can be used, for example, to provide interactivetelevision functions to users, or a “network-” or “internet-computer”which allows users to interact with a local or global network usingstandard connections and protocols such as used for the Internet andWorld Wide Web. Host computer preferably includes a host microprocessor,random access memory (RAM), read only memory (ROM), input/output (I/O)circuitry, and other components of computers well-known to those skilledin the art.

[0050] Host computer 18 preferably implements a host application programwith which a user is interacting via mouse 12 and other peripherals, ifappropriate, and which can include force feedback functionality. Forexample, the host application program can be a simulation, video game,Web page or browser that implements HTML or VRML instructions,scientific analysis program, virtual reality training program orapplication, or other application program that utilizes input of mouse12 and outputs force feedback commands to the mouse 12. Herein, forsimplicity, operating systems such as Windows™, MS-DOS, MacOS, Unix,etc. are also referred to as “application programs.” In one preferredembodiment, an application program utilizes a graphical user interface(GUI) to present options to a user and receive input from the user.Herein, computer 18 may be referred as displaying “graphical objects” or“computer objects.” These objects are not physical objects, but arelogical software unit collections of data and/or procedures that may bedisplayed as images by computer 18 on display screen 20, as is wellknown to those skilled in the art. A displayed cursor or a simulatedcockpit of an aircraft might be considered a graphical object. The hostapplication program checks for input signals received from theelectronics and sensors of interface 14, and outputs force values and/orcommands to be converted into forces on mouse 12. Suitable softwaredrivers which interface such simulation software with computerinput/output (I/O) devices are available from Immersion Human InterfaceCorporation of San Jose, Calif.

[0051] Display device 20 can be included in host computer 18 and can bea standard display screen (LCD, CRT, etc.), 3-D goggles, or any othervisual output device. Typically, the host application provides images tobe displayed on display device 20 and/or other feedback, such asauditory signals. For example, display screen 20 can display images froma GUI. Images describing a moving, first person point of view can bedisplayed, as in a virtual reality game. Or, images describing athird-person perspective of objects, backgrounds, etc. can be displayed.Alternatively, images from a simulation, such as a medical simulation,can be displayed, e.g., images of tissue and a representation of amanipulated user object 12 moving through the tissue, etc.

[0052] There are two primary “control paradigms” of operation for mousesystem 10: position control and rate control. Position control is themore typical control paradigm for mouse and similar controllers, andrefers to a mapping of mouse 12 in which displacement of the mouse inphysical space directly dictates displacement of a graphical object. Themapping can have an arbitrary scale factor or even be non-linear, butthe fundamental relation between mouse displacements and graphicalobject displacements should be present. Under a position controlmapping, the computer object does not move unless the user object is inmotion. Also, “ballistics” for mice-type devices can be used, in whichsmall motions of the mouse have a different scaling factor for cursormovement than large motions of the mouse to allow more control of smallcursor movement. Position control is not a popular mapping fortraditional computer games, but is popular for other applications suchas graphical user interfaces (GUI's) or medical procedure simulations.Position control force feedback roughly corresponds to forces whichwould be perceived directly by the user, i.e., they are “user-centric”forces.

[0053] As shown in FIG. 1, the host computer may have its own “hostframe” 28 which is displayed on the display screen 20. In contrast, themouse 12 has its own “local frame” 30 in which the mouse 12 is moved. Ina position control paradigm, the position (or change in position) of auser-controlled graphical object, such as a cursor, in host frame 30corresponds to a position (or change in position) of the mouse 12 in thelocal frame 28. The offset between the object in the host frame and theobject in the local frame can preferably be changed by the user, asdescribed below in FIG. 7c.

[0054] Rate control is also used as a control paradigm. This refers to amapping in which the displacement of the mouse 12 along one or moreprovided degrees of freedom is abstractly mapped to motion of acomputer-simulated object under control. There is not a direct physicalmapping between physical object (mouse) motion and computer objectmotion. Thus, most rate control paradigms are fundamentally differentfrom position control in that the user object can be held steady at agiven position but the controlled computer object is in motion at acommanded or given velocity, while the position control paradigm onlyallows the controlled computer object to be in motion if the user objectis in motion.

[0055] The mouse interface system 10 is useful for both position control(“isotonic”) tasks and rate control (“isometric”) tasks. For example, asa traditional mouse, the position of mouse 12 in the workspace 24 can bedirectly mapped to a position of a cursor on display screen 20 in aposition control paradigm. Alternatively, the displacement of mouse 12in a particular direction against an opposing output force can commandrate control tasks in an isometric mode. An implementation that providesboth isotonic and isometric functionality for a force feedbackcontroller and which is very suitable for the interface device of thepresent invention is described in parent application 081756,745,incorporated by reference herein.

[0056] Mouse 12 is preferably supported and suspended above groundedsurface 34 by the mechanical portion of interface 14, described below.In alternate embodiments, mouse 12 can be moved on a grounded pad 32 orother surface. In other embodiments, mouse 12 can contact a surface,pad, or grounded surface 34 to provide additional support for the mouseand relieve stress on the mechanical portion of interface 14. Inparticular, such additional support is valuable for embodiments in whichthere is only one location of grounding (e.g., at one axis of rotation)for a mechanical linkage of the device, as in the embodiment of FIG. 2.In such an embodiment, a wheel, roller, Teflon pad or other device ispreferably used on the mouse to minimize friction between the mouse andthe contacted surface.

[0057] Mouse 12 can be used, for example, to control acomputer-generated graphical object such as a cursor displayed in agraphical computer environment, such as a GUI. The user can move themouse in 2D planar workspace to move the cursor to graphical objects inthe GUI or perform other tasks. In other graphical environments, such asa virtual reality video game, a user can be controlling a computerplayer or vehicle in the virtual environment by manipulating the mouse12. The computer system tracks the position of the mouse with sensors asthe user moves it. The computer system may also provide force feedbackcommands to the mouse, for example, when the user moves the graphicalobject against a generated surface such as an edge of a window, avirtual wall, etc. It thus appears and feels to the user that the mouseand the graphical object are contacting real surfaces.

[0058]FIG. 2 is a perspective view of a preferred embodiment of themouse system 10 with the cover portion of housing 26 removed, showingthe mechanical portion of interface 14 for providing mechanical inputand output in accordance with the present invention. Interface 14includes a mouse or other user manipulatable object 12, a mechanicallinkage 40, and a transducer system 41. A base 42 is provided to supportthe mechanical linkage 40 and transducer system 41 on grounded surface34.

[0059] Mechanical linkage 40 provides support for mouse 12 and couplesthe mouse to a grounded surface 34, such as a tabletop or other support.Linkage 40 is, in the described embodiment, a 5-member (or “5-bar”)linkage including a ground member 42, a first base member 44 coupled toground member 42, a second base member 48 coupled to ground member 42, alink member 46 coupled to base member 44, and an object member 50coupled to link member 46, base member 48 and to mouse 12. Fewer orgreater numbers of members in the linkage can be provided in alternateembodiments.

[0060] Ground member 42 of the linkage 40 is a base for the support ofthe linkage and is coupled to or resting on a ground surface 34. Theground member 42 in FIG. 2 is shown as a plate or base that extendsunder mouse 12. In other embodiments, the ground member can be shaped inother ways and might only contact the ground surface directly underbearing 52., for example.

[0061] The members of linkage 40 are rotatably coupled to one anotherthrough the use of rotatable pivots or bearing assemblies having one ormore bearings, all referred to as “bearings” herein. Base member 44 isrotatably coupled to ground member 42 by a grounded bearing 52 and canrotate about an axis A. Link member 46 is rotatably coupled to basemember 44 by bearing 54 and can rotate about a floating axis B, and basemember 48 is rotatably coupled to ground member 42 by bearing 52 and canrotate about axis A. Object member 50 is rotatably coupled to basemember 48 by bearing 56 and can rotate about floating axis C, and objectmember 50 is also rotatably coupled to link member 46 by bearing 58 suchthat object member 50 and link member 46 may rotate relative to eachother about floating axis D. In the described embodiment, link member 46is coupled at its end to a mid-portion of object member 50 and mouse 12is coupled to the end of object member 50. In an alternate embodiment,the end of link member 46 can be rotatably coupled to the end of basemember 48, as in a parallel linkage disclosed in co-pending patentapplication Serial No. 08/664,086 by Rosenberg et al., herebyincorporated by reference in its entirety. The axes B, C, and D (and E)are “floating” in the sense that they are not fixed in one positionrelative to ground surface 34 as is axis A. Preferably, the axes B, C,and D are all substantially parallel to each other.

[0062] One advantageous feature of the linkage 40 is that both basemember 44 and base member 48 are rotatable about the same axis A. Thisis important to allow the compact actuator design of the presentinvention, as described in greater detail with reference to FIGS. 3a and3 b. Also this configuration dramatically simplifies the kinematicequations required to describe the motion of mouse 12 and provide forcesto mouse 12 at the other end of the linkage. In alternate embodiments,members 44 and 48 can be coupled to ground member 42 at differentlocations and are rotatable about different axes, so that two groundedaxes are provided about which each member rotates. In yet otherembodiments, the ground member 42 can be positioned between the basemembers 44 and 48 on axis A.

[0063] Linkage 40 is formed as a five-member closed-loop chain. Eachmember in the chain is rotatably coupled to two other members of thechain. The five-member linkage is arranged such that the members canrotate about their respective axes to provide mouse 12 with two degreesof freedom, i.e., mouse 12 can be moved within a planar workspacedefined by the x-y plane, which is defined by the x- and y-axes as shownin FIG. 2. Linkage 40 is thus a “planar” five-member linkage, since itallows the mouse 12 to be moved within a plane. In addition, in thedescribed embodiment, the members of linkage 40 are themselvesapproximately oriented in a plane.

[0064] Mouse 12 in the-preferred embodiment is coupled to object member50 by a rotary bearing 60 so that the mouse may rotate about floatingaxis E and allow the user some flexible movement in the planarworkspace. In alternate embodiments, motion about axis E may be sensedby sensors. In yet other embodiments, forces can be provided on mouse 12about axis E using actuators. In the preferred embodiment, a pad orother support is provided under mouse 12 to help support the mouse 12,and is described in greater detail with respect to FIG. 2a.

[0065] In alternate embodiments, capstan drive mechanisms (not shown)can be provided to transmit forces and motion between electromechanicaltransducers and the mouse 12. One example of the user of capstan drivesis shown in parent application Ser. No. 08/756,745. Capstan drivemechanisms provide mechanical advantage for forces generated byactuators without introducing substantial friction and backlash to thesystem. In alternate embodiments, mouse 12 can also be moved in anadditional spatial degree of freedom using a rotatable carriage coupledbetween ground member 42 and base member 44. Such an embodiment isdescribed in greater detail with reference to co-pending patentapplication Ser. No. 08/736,161, incorporated by reference herein in itsentirety.

[0066] Transducer system 41 is used to sense the position of mouse 12 inits workspace and to generate forces on the mouse 12. Transducer system41 preferably includes sensors 64 and actuators 66. The sensors 64collectively sense the movement of the mouse 12 in the provided degreesof freedom and send appropriate signals to the electronic portion ofinterface 14. Sensor 62 a senses movement of link member 48 about axisA, and sensor 62 b senses movement of base member 44 about axis A. Thesesensed positions about axis A allow the determination of the position ofmouse 12 using known constants such as the lengths of the members oflinkage 40 and using well-known coordinate transformations. Memberlengths particular to the interface device can be stored in local memory134, such as EEPROM, to account for manufacturing variations amongdifferent interface devices; alternatively, variations of the particularlink lengths from standard lengths can be stored in memory 204.

[0067] Sensors 62 are, in the described embodiment, grounded opticalencoders that sense the intermittent blockage of an emitted beam. Agrounded emitter portion 70 emits a beam which is detected across a gapby a grounded detector 72. A moving encoder disk or arc 74 is providedat the end of member 48 which blocks the beam in predetermined spatialincrements and allows a processor to determine the position of the arc74 and thus the member 48 by counting the spatial increments. Also, avelocity of member 48 based on the speed of passing encoder marks canalso be determined. In one embodiment, dedicated electronics-such as a“haptic accelerator” may determine velocity and/or acceleration, asdisclosed in co-pending patent application Ser. No. 08/804,535, filedFeb. 21, 1997, and hereby incorporated by reference herein. Theoperation of sensors 62 are described in greater detail with referenceto FIGS. 4a-4 c.

[0068] Transducer system 41 also preferably includes actuators 64 totransmit forces to mouse 12 in space, i.e., in two (or more) degrees offreedom of the user object. The housing of a grounded portion ofactuator 64 b is rigidly coupled to ground member 42 and a movingportion of actuator 64 b (preferably a coil) is integrated into the basemember 44. The actuator transmits rotational forces to base member 44about axis A. The housing of the grounded portion of actuator 64 a isrigidly coupled to ground member 42 through the grounded housing ofactuator 64 b, and a moving portion (preferably a coil) of actuator 64 ais integrated into base member 48. Actuator 64 a transmits rotationalforces to link member 48 about axis A. The combination of theserotational forces about axis A allows forces to be transmitted to mouse12 in all directions in the planar workspace provided by linkage 40through the rotational interaction of the members of linkage 40. Theintegration of the coils into the base members 44 and 48 is advantageousto the present invention and is discussed below.

[0069] In the preferred embodiment, actuators 64 are electromagneticvoice coil actuators which provide force through the interaction of acurrent in a magnetic field. The operation of the actuators 64 isdescribed in greater detail below in FIG. 3. In other embodiments, othertypes of actuators can be used, both active and passive, such as DCmotors, pneumatic motors, passive friction brakes, passivefluid-controlled brakes, etc.

[0070] Additional and/or different mechanisms can also be employed toprovide desired degrees of freedom to mouse 12. For example, in someembodiments, bearing 60 can be provided between mouse 12 and mousemember 50 to allow the mouse to rotate about an axis E extending throughthe bearing 60. The allowed rotation can provided to allow the user'shand/wrist to conveniently stay in one position during mouse movementwhile the mouse 12 rotates about axis E. This rotational degree offreedom can also be sensed and/or actuated, if desired, to provide anadditional control degree of freedom. In other embodiments, a floatinggimbal mechanism can be included between mouse 12 and linkage 40 toprovide additional degrees of freedom to mouse 12. Optionally,additional transducers can be also added to interface 14 in provided oradditional degrees of freedom of mouse 12.

[0071] In an alternate embodiment, the mechanism 14 can be used for a3-D interface device that allows a user to move a user object 12 inthree dimensions rather than the 2-D planar workspace disclosed. Forexample, in one embodiment, the entire mechanism 14 can be made torotate about a grounded axis, such as axis H extending through themagnet assemblies 88. For example, members (not shown) rigidly coupledto the magnet assemblies 88 or to grounded member 42 can extend in bothdirections along axis H and be rotary coupled to a grounded surface atpoints H1 and H2. This provides a third (rotary) degree of freedom aboutaxis H to the mechanism 14 and to the user object 12. A motor can begrounded to the surface near point H1 or H2 and can drive the mechanism14 about axis H, and a sensor, such as a rotary encoder, can sensemotion in this third degree of freedom. One reason for providing axis Hthrough the magnet assemblies is to reduce the inertia and weightcontributed to motion about axis H by the magnet assemblies. Axis H canbe provided in other positions in other embodiments. In such anembodiment, the user object 12 can be a stylus, grip, or other userobject. A third linear degree of freedom to mechanism 14 can be providedin alternate embodiments. One embodiment of a planar linkage providingthree degrees of freedom is disclosed in co-pending patent applicationSer. No. 08/736,161 filed Oct. 25, 1996 and hereby incorporated byreference herein.

[0072]FIG. 2a is a perspective view of a portion of the housing 26 ofthe mouse interface device of the present invention which is positionedunder mouse 12. Grounded surface 59 of the housing 26 preferablyincludes, in the preferred embodiment, a pad 57 or other supportpositioned on it. Pad 57 supports the bottom of mouse 12 on the groundedsurface 59 when the mouse is moved in its planar workspace. Since thelinkage 40 is coupled to ground only at one location (axis A), thesideways position of the linkage 40 creates an unbalanced weight thatmay not be fully supported by the grounded bearing 52. Pad 57 providesthe required support to any pressure or force from the user in thez-direction on mouse 12 toward the ground surface 34. In the describedembodiment, the pad 57 surrounds an opening in housing 26 that ispositioned over the opening 76 in the ground member 42 that provides thelimits to the workspace of the mouse 12 using a guide pin, as describedbelow (the ground member 42 is positioned under the surface 59 in thedescribed embodiment).

[0073] The pad 57 can support the mouse 12 on any grounded surface, suchas grounded member 42 or grounded surface 34. The pad 57 is preferablymade of Teflon or other smooth material that allows the mouse 12 toslide substantially freely over surface 59 (or ground member 42 orgrounded surface 34) with a small amount of friction. In otherembodiments, other types of supports can be used that allow a smallfriction between mouse and surface, such as a roller, wheel, ball, etc.In other embodiments, a pad or other support can be coupled to theunderside of linkage 40 such as at object member 50 or at bearing 60, orat other areas between mouse 12 and grounded surface 34.

[0074]FIG. 3a is a top plan view and FIG. 3b is a side elevational viewof the mouse interface system.

[0075] As seen in FIG. 3b, the only connection of the four linkagemembers 44, 46, 48, and 50 to the ground member 42 is through groundedbearing 52, where only base members 44 and 48 are grounded at axis A.Bearings 54, 56, and 58 are floating and not connected to the groundmember. The single rotation point for the base members is important tothe present invention since it allows the coils on the base members tosweep the same region, permitting the grounded portion of the actuatorsto be stacked as explained below. Bearing 52 actually includes tworotary bearings 52 a and 52 b, where bearing 52 a is couples member 48to ground member 42 and bearing 52 b couples member 44 to ground member42.

[0076] As described above, actuators 64 are preferably electromagneticvoice coil actuators used to provide forces to the user object. Theheavy portion of the actuators—the magnets and housing for magnets—aregrounded, while the lighter portion of the actuators—the coils—are notgrounded and ride on members of the linkage. Voice coil actuators aredescribed in detail in parent patent application Ser. No. 08/560,091.

[0077] Actuator 64 a drives base member 48. Link member 48 includes anintegrated coil portion 80 a on which a wire coil is provided. Coilportion 80 a may be of the same material as the remaining portion ofmember 48, or it may include a circuit board material (with a suitabledielectric, etc.) which promotes easy layout and etching of a coil onits surface. A wire coil 82 a of actuator 64 a is coupled to portion 80a of member 48. Preferably, wire coil 82 a includes at least two loopsof wire and is etched or otherwise attached on portion 80 a as a printedcircuit board trace using well-known techniques. Fewer or greaternumbers of loops of coil 82 a can also be provided. Terminals 93 (shownbetter in FIG. 4c) from wire coil 82 a to the electronic interface areprovided so that computer 18 or local microprocessor 130 can control thedirection and/or magnitude of the current in wire coil. The coil 82 acan be made of aluminum, copper, or other conductive material.

[0078] The coil portion of actuator 64 a is integrated in base member 48and pivots about A as the base member so pivots. This feature is one ofthe advantages of the present invention. In typical prior art forcefeedback linkages, the actuator has a pivot/bearing which the actuatordrives, which is separate from the bearing about which a member of thelinkage rotates. In the device of the present invention, a singlebearing 52 is a grounded bearing of the linkage and a guide bearing forthe actuator, since base member 48 is part of both the linkage 40 andthe actuator 64 a. This is more efficient than having separate bearingssince one part serves two functions, and reduces the weight of thedevice as well.

[0079] Voice coil actuator 64 a also includes a magnet assembly 88 a,which is grounded and preferably includes four magnets 90 a and a plateflux path 92 a. Alternatively, two magnets 90 with two polarities eachcan be included. As shown in FIG. 3c, each magnet has a polarity (northN or south S) on opposing sides of the magnet. Opposite polarities ofmagnets 90 face each other, such that coil 82 a is positioned betweenopposing polarities on either side of the coil. In alternateembodiments, one or more magnets 90 can be provided on one side of coil82 a, and the other magnet 90 on the opposite side of the coil 82 a canbe a piece of metal shaped similarly to the magnet that provides a fluxreturn path for the magnetic field. Preferably, a small amount of spaceis provided between the magnet surfaces and the coil 84 a/member 48.Magnetic flux guide 92 a is provided as, in the described embodiment,two steel plates on either side of the magnets 90 a and are used tohouse the actuator 64 a to allow magnetic flux from magnets 90 a totravel from one end of the magnets 90 a to the other end, as is wellknown to those skilled in the art.

[0080] The magnetic fields from magnets 90 a interact with a magneticfield produced from wire coil 82 a when current is flowed in coil 82 a,thereby producing forces on member 48. Coil 82 a and member 84 arepositioned between magnets 90 a and are thus affected by the magneticfields of opposing magnets. As an electric current I is flowed throughthe coil 82 a via electrical terminals 93, a magnetic field is generatedfrom the current and configuration of coil 82 a. The magnetic field fromthe coil then interacts with the magnetic fields generated by magnets 90a to produce a force on member 48 about axis A. The magnitude orstrength of the force is dependent on the magnitude of the current thatis applied to the coil, the number of loops in the coil, and themagnetic field strength of the magnets. The direction of the forcedepends on the direction of the current in the coil; the force can beapplied in either direction about axis A. By applying a desired currentmagnitude and direction, force can be applied to member 48 and throughmember 50, thereby applying force to mouse 12 in the x-y plane workspaceof the mouse. A voice coil actuator can be provided for each degree offreedom of the mechanical apparatus to which force is desired to beapplied.

[0081] Thus, the magnetic fields from magnets 90 a interact with themagnetic field produced from wire coil 82 a when current is flowed incoil 82 a to produce a planar force to the coil portion 80 a of themember 84. The coil portion 80 a and wire coil 82 a are moved about axisA until the member 48 contacts the stop supports 91 provided at each endof the range of motion of the member 48 about axis A (guide opening 76and guide pin 78 may also limit the range of the actuators; see FIG.4a). Alternatively, the physical stops to movement can be omitted, wherethe force on member 48 is gradually decreases and ceases as the coilportion 80 a moves out from between the magnets 90 a.

[0082] Voice coil actuator 64 b operates similarly to actuator 64 a. Acurrent is flowed through coil 82 b to cause interaction with a magneticfield from magnets 90 b of magnet assembly 88 b which is similar to themagnet assembly 88 a described above, and inducing magnetic forces thatrotate portion 80 b of base member 44 about axis A. This causes forcesto be applied to mouse 12 in the x-y workspace of the mouse through themember 44, member 46, and member 50. In one embodiment, plates 90 cprovided on the other side of member 44 are simply metal plates providedfor flux path of the magnetic field from magnets 90 b (or are omittedaltogether); this is more efficient from a manufacturing perspectivesince the magnets 90 a and 90 b are obtained as a unit and can simply beplaced as is on the interface device 10 in the manufacturing process. Inother embodiments, plates 90 c can be magnets similar to magnets 90 aand 90 b; this provides a stronger magnetic field, allowing strongerforces using less power; however, the manufacturing/assembly process ofthe mouse interface device is more complex and expensive.

[0083] Magnet assembly 88 b is preferably positioned below and coupledto magnetic assembly 88 a such that the grounded magnet assemblies arestacked. Magnetic flux guide 92 b is coupled to magnetic flux guide 92 aand a portion of the flux path between the two magnetic assemblies isshared by both actuators. This allows each actuator to gain a greaterflux path. In addition, the stacked configuration can provide bothmagnetic assemblies as a single unit, providing a more compact design, asimpler manufacturing design, less materials, and a simpler, less costlyunit to mount on the interface device.

[0084] An important advantage of the present invention is the linkage 40which provides a single rotation axis A for both base members 44 and 48.Since the base members 44 and 48 of the present invention also integratethe moving wire coil portion of the actuators, the moving portion of theactuators thus also rotate about the same axis A. The coils 82 a and 82b thus sweep the same region, with one coil over the other coil. Themembers 44 and 48, in effect, act as guides for the movement of thecoils. This single axis of rotation allows the magnet assemblies 88 aand 88 b to be stacked, which provides several advantages as explainedabove. The single axis rotation for both members 44 and 48 also allowsthe sensor arcs 74 to sweep out regions that are the same but ondifferent points on the z-axis. This allows sensors 62 a and 62 b to bestacked on each other to read the sensor arcs, providing an even moreadvantageous, compact design.

[0085] A further advantage of integrating the coils 82 with the groundedbase members 44 and 48 is that mechanical advantage is gained from thelength of the base members. The two base members 44 and 48 are coupledto a single pivot point at a mid-point of the base members, where oneend of each base member includes a coil—the coils are thus spaced frompivot. The mechanical advantage is derived from the ratio of thedistance from the coil to the rotation point (axis A) and the distancefrom the rotation point to the other end of the member at the bearing54. The base members 44 and 48 thus act as lever arms, and the lever armdistance provides mechanical advantage to forces generated by theactuators 64 and transmitted through linkage 40 to mouse 12.

[0086] The voice coil actuators 64 a and 64 b have several advantages.One is that a limited movement range is defined for a particular degreeof freedom of mouse 12 by the length of the magnets 90 and the stops 91.Also, control of the voice coil actuator is simpler than other actuatorssince output torque is a substantially linear function of input coilcurrent. In addition, since voice coil actuators do not requiremechanical or electrical commutation as do other types of motors, thevoice coil actuator has a longer life expectancy, less maintenance, andquiet operation. The actuation is nearly frictionless, resulting ingreater haptic fidelity and smoother feel to the user. The parts forvoice coil actuators are inexpensive to produce and are readilyavailable, such as voice coil driver chips, resulting in a low cost wayto provide realistic force feedback.

[0087] In the particular embodiment disclosed, another advantage relatesto the grounding of both actuators 64 a and 64 b. Since both actuatorsare coupled to ground, the user moving mouse 12 does not carry the heavyportion of the actuators (the magnets and the housings) or feel theirweight, thus promoting realistic force feedback using smaller magnitudeforces, and allowing the interface system 10 to be a low cost device.

[0088] In alternate embodiments, the mechanical linkage 40 can bereplaced by other mechanical linkages or structures which can providedesired degrees of freedom. For example, portions 80 a and 80 b of themembers 48 and 44 can be linearly moved through encoders 62 and linearactuators can provide forces in linear degrees of freedom of mouse 12.In other embodiments in which rotary degrees of freedom are desired fora user object, linear degrees of freedom can be provided in the X and Yaxes and can be converted to two rotary degrees of freedom for a userobject 12 using a ball joint, pendulum, or other mechanism.

[0089] In the preferred embodiment, separate sensors 62 are used todetect the position of mouse 12 in its planar workspace. This isdescribed in greater detail with respect to FIGS. 4a-4 c. However, inalternate embodiments, the voice coil actuators 64 a and 64 b can alsobe used as sensors to sense the velocity of the members 44 and 48 aboutaxis A and/or to derive the position and other values of mouse 12 in itsplanar workspace from the sensed velocity. Motion of coil 82 a alongaxis Y within the magnetic field of magnets 90 a induces a voltageacross the coil 82 a and this voltage can be sensed by ananalog-to-digital converter or other electronics, for example. Thisvoltage is proportional to the velocity of the coil and portion 80 ofthe rotating member about axis A. From this derived velocity,acceleration or position of the members 48 and 44 can be derived usingtiming information, for example, from a clock (described below).Alternatively, one or more additional coils similar to coil 82 a andhaving an appropriate number of loops can be placed on member portions80 which are dedicated to sensing voltage to derive position, velocity,or acceleration as described above. However, voice coil actuatorsproduce analog values, which are subject to noise, and the filtering ofsuch noise typically requires expensive components; thus, in thepreferred low-cost embodiment, separate digital sensors are used tosense the position, motion, etc. of mouse 12.

[0090] In other embodiments, additional coils can also be provided foractuators 64 to provide different magnitudes of forces. For example,coil 82 a can include multiple separate “sub-coils” of wire. A set ofterminals can be included for each different sub-coil. Each sub-coil caninclude a different number of loops on portion 80 and therefore willgenerate a different magnetic field and thus a different magnitude offorce when a constant current I is flowed through the sub-coil. Thisscheme is also applicable to a digital system using on and off switches.This embodiment is described in greater detail in co-pending applicationSer. No. 08/560,091.

[0091] In other embodiments, linear actuators can be used to provideforces in provided degrees of freedom. Some examples of linearelectromagnetic actuators are described in patent application Ser. No.08/560,091. Also, other types of actuators may be used in place of or inaddition to actuators 64 of the interface device. For example, thelinkage can be driven by a direct drive DC motor or a geared/belt DCmotor to provide mechanical advantage.

[0092]FIGS. 4a and 4 b are top plan views of mouse interface system 10showing the operation of the mouse system. In FIG. 4a, the mouse 12 (notshown) coupled to member 50 at axis E is approximately at a neutralposition in which the members 44 and 50 are approximately parallel andthe mouse is approximately in a center of its allowed workspace. Coilportions 80 a and 80 b of members 44 and 48 are approximately centeredin the range of the optical encoder sensors 62 a and 62 b and within therange of magnet assemblies 88 a and 88 b.

[0093] As shown in FIG. 4a, a workspace guide opening 76 is provided inground member 42 to limit the movement of mouse 12 in the x-y plane.Guide opening 76 is a shallow opening in the ground member 42 havingsides which block movement of the mouse 12 beyond specified limits. Aguide pin 78 is coupled to the bearing 60 at axis E and extends downinto the guide opening 76. Pin 78 contacts one or more sides of theopening 76 when the mouse is moved to a limit in a particular direction.As shown, guide opening 76 has relatively small dimensions, allowing themouse a workspace of approximately 0.9″ by 0.9″ in the describedembodiment. This is typically adequate workspace for the user to movethe mouse and control a graphical object such as a cursor on a displayscreen. In other embodiments, differently-sized guide openings can beprovided for differently-sized workspaces, or other types of stops orguides can be used to prevent movement past predetermined limits. Theguide opening 76 is shown as square shaped, but it can be rectangular inother embodiments; for example, the dimensions of opening 76 can be madethe same aspect ratio as a standard computer monitor or other displayscreen. FIG. 4a shows guide pin 78 approximately in the center of theguide opening 76.

[0094] In FIG. 4b, the mouse 12 (not shown) and axis E have been movedin the x-y plane of the workspace of the mouse. The movement of themouse has been limited by the guide opening 76, where guide pin 78 hasengaged the sidewall of the upper-left corner area of guide opening 76and stops any further movement in the forward y-direction. Linkage 40and portions 80 of members 44 and 48 have moved as shown, such thatportion 80 a of link member 48 has moved to the left and portion 80 b ofbase member 44 has moved to the right of their positions in FIG. 4a.Sensor 62 a has detected the movement of portion 80 a by sensing themovement of the encoder arc 74 a through the gap of the encoder 62 a.Likewise, sensor 62 b has detected the movement of portion 80 b bysensing the movement of the encoder arc 74 b through the gap of encoder62 b.

[0095]FIG. 4c is a detailed top plan view of portion 80 a of link member48 and encoder 62 a. Encoder arc 74 is preferably a transparentmaterial, such as plastic, and preferably includes a number of dark linemarks 98 which are very closely spaced together. The more closely spacedthe marks 98 are, the finer the resolution of the sensor 62. Forexample, in the preferred embodiment, a line spacing on the arc can beabout 200-500 lines per inch, providing four times that resolution in aquadrature encoder (these dimensions are exaggerated in FIG. 4c forclarity). Sensor 62 emits a beam of electromagnetic energy, such as aninfrared beam, from emitter 70, which is detected across the gap atdetector 72 when a mark 98 is not positioned to block the beam, i.e.,the beam can travel through the transparent material of arc 74. When amark passes under the beam, the beam is blocked and this blockage isdetected by the detector 72. In this way, the detector 72 outputs asensor signal or pulse indicating each time a mark passes through thebeam. Since sensor 62 in the described embodiment is a quadratureencoder, detector 72 preferably includes 2 individual spaced apartdetectors providing four times the resolution, as is well known to thoseskilled in the art. By counting the number of marks passing through thebeam, the position of the member 48 about axis A is known. The velocityand/or acceleration of the member 48 can also be derived from theposition data and timing information, as described above. Other types ofemitter-detector pairs can also be used.

[0096] Portion 80 b of base member 44 and encoder 62 b functionsimilarly to the portion 80 a and encoder 62 a described above. From thepositions of the base member 48 and the base member 44 about axis A, theposition of mouse 12 can be determined. A suitable optical quadratureencoder which performs the functions described above is model HEDS-9000from Hewlett Packard. In alternate embodiments, the encoder wheel 158may be made opaque, while marks 159 are notches cut out of the wheel 158that allow the beam from the emitter to pass through and be detected bydetector 162.

[0097] Alternate embodiments can include sensors 62 a and/or 62 b(and/or actuators 64) in different positions. For example, as shown inthe alternate embodiment of FIG. 4d, the actuators 64 a and 64 b can beplaced on opposing sides of the grounded axis A. Likewise, sensors 62 aand 62 b are placed with their corresponding actuators. Linkage 40′includes the members 44, 46, 48, and 50 as in the embodiment of FIG. 2,but in slightly different positions due to the different sensor/actuatorplacement. In other respects, the embodiment of FIG. 4d operatessimilarly to the embodiment of FIG. 2. In other embodiments, actuators64 and sensors 62 can also be placed in other positions.

[0098] In other embodiments, other types of sensors can be used. Forexample, a single sensor can be used to detect motion in both degrees offreedom.

[0099]FIG. 4e is a diagrammatic illustration showing an alternateembodiment including rotary sensor 152 with a friction wheel. FIG. 4eshows portion 80 a of member 48, which rotates about axis A. Instead ofoptical encoder sensor 64 a, rotary sensor 152 can be used, whichincludes a grounded shaft 154, a roller 156, an encoder wheel 158, anemitter 160, and a detector 162. Roller 156 is preferably made of amaterial having high friction and is rigidly coupled to shaft 154 suchthat the surface of the roller 156 frictionally contacts the circularedge 155 of member 48. When member 48 rotates about axis A, roller 156rotates shaft 154 about an axis extending through the shaft. Encoderwheel 158 is rigidly coupled to shaft 154 offset from the edge 155 ofthe member 48 and rotates when shaft 154 rotates. Included on encoderwheel 158 are marks 159 spaced equally around the perimeter of theencoder wheel. The edge of the encoder wheel passes between groundedemitter 160 and grounded sensor 162. Similar to the optical encoderembodiment described above, the encoder wheel can be made transparent,so that a beam emitted from emitter 160 is blocked from reachingdetector 162 only when a mark 159 passes between the emitter anddetector. Thus, detector 162 may send a signal or a count indicating howmany marks pass by the detector. From this information, the position ofthe member 48 can be derived. Alternatively, the encoder wheel 158 maybe made opaque, while marks 159 are notches cut out of the wheel 158that allow the beam from the emitter to pass through and be detected bydetector 162.

[0100] The embodiment of FIG. 4e is advantageous in that the marks 159need not be as closely spaced as the marks 98 of the embodiment of FIG.4c, since several rotations of encoder wheel 158 are completed for therange of motion of member 48 about axis A. This gearing up of the sensorresolution allows a less accurate, and less costly procedure, inproducing the sensor. A disadvantage of this embodiment is that moremoving parts are required, and the friction between roller 156 and edge155 can wear down over time, causing slippage and inaccurate positiondetection.

[0101]FIG. 4f is a perspective view of another alternate embodiment of asensing system including a planar sensor 162. Sensor 162 includes aplanar sensor or “touch pad” 161 having rectangular sensing area and apointer 162. Planar sensor 161 is preferably positioned somewherebeneath linkage 40; it is shown approximately at the position of opening76 in FIG. 4f, but can be provided in other positions as well. Pointer162 is coupled to bearing 58 at axis D and extends down to contact thetablet 161, and can be a plastic or metal nub, for example. Pointer 162can also be placed at other bearings or positions of the linkage inother embodiments. The planar sensor 161 can also be placed withinopening 76 so that pointer 162 acts as guide pin 78.

[0102] Planar sensor 161 is functional to detect the x and y coordinatesof the tip 163 of pointer 162 on the tablet. Thus, as the mouse 12 ismoved in its planar workspace, pointer 162 is moved to differentlocations on planar sensor 161. The x-y position of the local frame 30on planar sensor 161 is transformed to the host frame 28 and the usercontrolled graphical object is displayed accordingly.

[0103] In the preferred embodiment, planar sensor 161 can also sense thepressure of tip 163 on the tablet, i.e., in the z-direction. Forexample, the Versapoint Semiconductive Touch Pad from Interlink is asuitable planar sensor that detects the x-y position as well as pressureor force in the z-direction. The pressure information can be useful insome embodiments for a variety of purposes. A first use is for a safetyswitch. The pressure information can be used to determine whether theuser is currently placing weight on the user object. If the user is notplacing weight, then the actuators can be deactivated for safetyreasons, as described below with reference to FIG. 7b. A second use isfor the indexing function, described below with reference to FIG. 7c.Both these functions might be performed only if the detected pressure inthe z-direction is above or below a predetermined threshold (wheredifferent thresholds can be used for safety switch and indexing, ifdesired).

[0104] A third use is to use the pressure information to modify theoutput forces on user object 12. One use of pressure information is tocontrol a friction force on the user object felt by the user. Forexample, if the user moves a controlled cursor over a frictional region,the force opposing movement across the region is output on the userobject. If the pressure information in the z-axis is known from planarsensor 161, this pressure information can help determine the magnitudeof simulated friction the user experiences as the cursor moves acrossthe region. This is because friction in a lateral direction is afunction of the force normal to the surface, which is the force in thez-direction from the user. If the user is exerting a large amount ofpressure down on the user object, then a large friction force is felt,and vice versa, as if a real object were being scraped along thesurface. This feature can be especially useful in drawing programs,where the amount of control in moving a virtual pen tip can be greatlyenhanced if the user is able to input pressure information in thez-direction and control the amount of friction on the pen tip as itdraws on the screen. Thus, pressure information in the z-axis canenhance the realism of force sensations output by the interface device104.

[0105] The pressure information can also be used to control a dampingforce. A damping force is typically provided as a force proportional tovelocity of the user object, where a coefficient of damping b is aproportionality constant. The damping coefficient can be modulated basedon the sensed z-axis force exerted by the user, so that the experienceddamping force is based on the velocity of the user object in the x-yplane as well as the force on the user object in the z-direction, wherea larger z-axis force provides a larger damping coefficient and thus alarger damping force. The pressure information can also be used tocontrol a texture force. One way to provide texture forces is tospatially vary a damping force, i.e., a damping force that varies on andoff according to user object position, such as a series of bumps. Thedamping coefficient b can be varied to create the texture effect, whereb is made high, then low, then high, etc. If pressure in the z-axis isavailable, the damping coefficients can be all globally increased ordecreased by the same amount based on the amount of pressure. Thiscauses a high pressure in the z-axis to provide a stronger textureforce, and vice-versa. Texture can also be based on stiffness (k) as ina spring; the stiffness can be globally varied based on pressureinformation as with the damping texture force. Other types of forces mayalso be enhanced or modified if such pressure information is known.

[0106] In yet other embodiments, lateral effect photo diode sensors canbe used in the mouse interface system 10. For example, such a photodiode sensor can include a rectangular or other-shaped detectorpositioned in place of the detector or emitter of sensors 62. A beamemitter that is coupled to ground member 42 or to grounded surface 34can emit a beam of electromagnetic radiation which impinges on thedetector. The position of the detector, and thus the rotating member, isknown from the position of the beam on the detector area. The detectorcan be positioned on other areas or components of the linkage 40 inother embodiments. In other embodiments, the detector can be coupled toground and the emitter can be coupled to the moving member (as in FIG.4i and 4 j below).

[0107]FIGS. 4g 1 and 4 g 2 are perspective and top plan views,respectively, showing a different lateral effect diode sensor 166including a light pipe. A stationary emitter (e.g., a light emittingdiode or LED) 168 positioned on ground member 42 or other groundedsurface 34 emits a beam of electromagnetic energy. A light pipe 170 is arigid member having a solid, transparent interior and two ends 171 and172. End 171 is positioned over emitter 168 such that the emitted beamtravels into the pipe 170. The beam travels through the light pipe andstays inside the pipe due to the index of refraction of the pipematerial and angle of incidence of the beam, as shown by dashed line173; the operation of light pipes is well known to those skilled in theart. The beam is reflected of 45-degree angled surfaces in the pipe anddirected out of opening 172. Beam 174 is shown as a long narrow beam inFIG. 4g 1, but can alternatively be provided as a circular or othershaped beam. The beam 174 is directed onto a detector 176, which ispreferably a photo sensitive diode or similar detector, and is groundedsimilarly to emitter 168. Emitter 168 and detector 176 are preferablyprovided on the same grounded printed circuit board for a low costembodiment. The beam 174 can cover a wider area than the detection area178 of the detector 176, as shown. The detector outputs an electricalsignal indicating the location of the beam on the area 178, as is wellknown to those skilled in the art.

[0108] In the described embodiment, light pipe 170 is rigidly coupled toa moving member, such as member 44 or member 48, at member 180. Thelight pipe is rotatable about axis F₁, which in this embodiment is notaligned with the emitter 168. Axis F₁ can be any of the axes of rotationof the members of linkage 40 or 40′, including axes A, B, C, or D.Alternatively, the light pipe 166 can be placed over member 48 so thatopenings 171 and 172 are on either side of the member 48 and axis F₁ isaxis A. When the coupled member moves about axis F₁, the light pipe alsorotates about axis F₁. The beam 174 on detector 176 thus moves as welland the rotated position of the member can be determined by the detectedposition of the beam on the detector. In one embodiment, the light pipemoves about 15 degrees in either direction about axis F₁ (depending onthe movement range of the member to which it is coupled). Thewide-mouthed shape of opening 171 allows the emitted beam 174 to betransmitted through the pipe regardless of the pipe's position over theemitter. A fiber optic cable or flexible pipe can also be used in otherembodiments for light pipe 170. One advantage to this sensor embodimentis that both emitter and detector are grounded, thus greatly simplifyingthe assembly and reducing cost of the device since no wires need berouted to an emitter or detector positioned on a moving member of thelinkage. Another embodiment of a sensor using a lateral effect photodiode is disclosed in patent application Ser. No. 08/560,091.

[0109]FIGS. 4h 1 and 4 h 2 are perspective and top plan views,respectively, of an alternate embodiment 182 of the light pipe sensor ofFIGS. 4g 1 and 4 g 2. Sensor 182 includes an emitter 184, a light pipe186, and a detector 188 which operate substantially the same as thesecomponents in FIGS. 4g 1 and 4 g 2. A centroid location 191 of the beamcan be detected by the detector 188. Light pipe 186 is rigidly coupledto a moving member such as member 44 or 48 and may rotate about axis F₂with the coupled member, where axis F₂ may be any of the axes ofrotation of the linkage 40 or 40′. In this embodiment, however, the beamis emitted from emitter 184 coaxially with the axis of rotation F₂ ofthe light pipe. Since the light pipe may rotate about the axis of theemitted beam, the opening 190 of light pipe 186 can be made narrowerthan the. wide opening 171 of the light pipe 170. In addition, thisconfiguration has the advantage over light pipe 170 in that the beam 192directed at detector 188 is more uniform throughout the range of motionof the pipe, since the emitter source 184 does not change its positionrelative to the opening 190 of the pipe.

[0110]FIG. 4i is a perspective view of another alternate embodiment of asensor 193 for use with the present invention. An emitter 194 is mountedto a rotating arm 195 that is in turn rigidly coupled to a moving membersuch as member 44 or 48 by a coupling 196. Rotating arm 195 thus rotatesabout an axis F₃ when the connected member of the linkage rotates, whereaxis F₃ is the axis of rotation of the connected member and may be anyof the axes of rotation of the linkage 40 or 40′. In the embodimentshown, a directed beam 198 of electromagnetic energy is shapedsubstantially circular and is directed at a grounded detector 197 whichis similar to the detectors described above. The directed beam thussweeps over the detecting area of the detector 197 when the arm 195 andthe connected member rotate, allowing the detector to sense the positionof the member. The directed beam can be of other shapes in otherembodiments. Rotating arm 195, in alternate embodiments, can be part ofan existing member of the linkage 40 or 40′, e.g. an extension of amember of the linkage rather than a separate component.

[0111]FIG. 4j is a perspective view of an alternate embodiment 193′ ofthe sensor 193 of FIG. 4i. Embodiment 193′ includes a rotating arm 195and detector 197 as described in FIG. 4i. In addition, a flexible fiberoptic cable 199 or similar flexible light guide is coupled between theemitter 194 and the arm 195. Fiber optic cable 199 guides a light beam189 from emtiter 194 and along the cable's length, where thetransmission of light through such a cable is well known to thoseskilled in the art. The beam is guided to arm 195, where the beam 189 isdirected onto detector 197 as in FIG. 4i. The cable 199 may flex as thearm 195 rotates about axis F₃. This embodiment allows the emitter 194 tobe grounded as well as the detector 197, thus simplifying assembly andreducing the manufacturing cost of the device.

[0112]FIG. 5a is a perspective view and FIG. 5b is a side elevationalview of one embodiment of a ball bearing assembly 200 suitable for usefor rotatably connecting the members of linkage 40 or 40′ of the presentinvention. The linkage 40′ of the alternate embodiment of FIG. 4d isshown in FIG. 5a; however, the bearing assembly 200 can also be used inthe embodiment of FIG. 2. The ball bearing assembly 200 includes a row206 of individual balls 202 that ride in V-shaped grooves 204 (bearingraces) which are an integral part of each member. FIG. 5b shows a sideelevational view of one implementation of the bearing assembly 200 aboutthe grounded axis A of the alternate embodiment of FIG. 4d. This bearingassembly includes several layers 208 of balls 202, where a first layer208 a of balls 202 a is positioned in a ring within V-shaped groove 204a between the ground member 42 and the base member 44. On the basemember 44 is positioned layer 208 b of balls 202 b in a ring withinV-shaped groove 204 b. Base member 48 is positioned over layer 208 b,and a top cap layer 208 c of balls 202 c within V-shaped groove 204 c ispositioned over the base member 48. The entire bearing assembly 200 isthen preloaded with a screw 210 or spring loading mechanism to keep allthe components of the bearing assembly tightly coupled together.Advantages of the bearing assembly 200 include low cost of manufacturesince the parts are widely available and inexpensive, and high stiffnessand compactness.

[0113]FIG. 5c is a perspective view of an alternate embodiment forbearings of the linkage 40 or 40′. In the described embodiment of FIG.5c, snap bearing 216 is provided for bearing 56, and snap bearing 218 isprovided for bearing 58. One part of bearing 216 is a cylindrical boss220 included as part of member 50, which mates with cylindrical cavity222 included in member 48. A slot 217 in member 48 which extends fromthe cylindrical cavity 222 creates a spring that allows the sides of thecavity 222 to grab the boss 220 with a predetermined amount of force.The boss 220 can be made of a slippery plastic material such as Delrin,while the cavities can be made of metal as is member 48. Likewise, onepart of bearing 218 is a cylindrical boss 219 included as part of member50 which mates with cylindrical cavity 221 included in member 46. A slot223 in member 446 extends from the cavity 221 and creates a spring forcethat grabs boss 219 with a predetermined amount of force. In addition,upper and lower flanges, or other devices, can be provided on thecylindrical bosses 220 and 219 to prevent the elements of bearings 216and 218 from sliding apart along axes C and D, i.e., to keep the membersof the linkage substantially in the same plane. Similar bearings to 216and 218 can be used for the other bearings of linkage 40 or 40′.

[0114] The bearings 216 and 218 use the natural springiness (elasticity)of elements 46 and 48 to hold the elements 48, 50, and 46 together, andthus can provide a connection having close to zero play due to thecreated spring force. Preferably, these bearings can be simply snappedtogether to provide a low cost, easy-to-assemble linkage 40 or 40′.

[0115]FIGS. 5d 1 and 5 d 2 are perspective views of an alternateembodiment 224 of the snap bearings 216 and 218 of FIG. 5c. As shown inFIG. 5dl, bearing 224 includes a fork 225 provided, in the exampleshown, on member 48 (the bearing 224 can be provided on other members oflinkage 40 or 40′ as well). Fork 225 includes two prongs 226 that eachinclude a cavity 227 for receiving a corresponding assembly of bearing224 (not shown in FIG. 5dl). Like the snap bearings 216 and 218 of FIG.5c, a slot 228 extends from each of the cavities 227 on the prongs 226.In FIG. 5d 1, bearing 58 on member 46 is a standard bearing having twoprongs for holding a corresponding portion (not shown) of a bearing onthe attached member.

[0116] In FIG. 5d 2, member 50 has been attached to members 46 and 48.Bearing 224 couples member 48 with member 50. A bearing assembly 229 ofmember 50 includes two cylindrical bosses 230 at either end which “snap”into (mate with) the prongs 226 of the fork 225 on member 48 and isrigidly held by a predetermined amount of spring force caused by slot228 and the elasticity of the prong material. Member 50 is attached tomember 46 using a standard bearing 58; in other embodiments, bearing 58can be a bearing similar to bearing 224. Bearing 224 can be made ofsimilar materials as described in FIG. 5c.

[0117]FIG. 5e 1 is a top plan view of bearing 224 where assembly 229 ismated with fork 225. As shown, the cylindrical cavity 227 preferably hasa diameter d1 to which the boss 230 of assembly 229 is matched in size.The forward portion 231 of cavity 227 preferably is narrower than thediameter d₁ of the cavity 227 by an amount d₂ on each side of theportion 231. This allows the boss 230 of the assembly 229 to fit moresnugly in the mating portion 232 of the cavity and holds the boss 230 inplace within the mating portion of the cavity 227.

[0118]FIG. 5e 2 is a side partial sectional view of bearing assembly 229of the bearing 224. Assembly 229 preferably includes a bearing 232 and abearing 234 which may rotate with respect to each other about axis J(which may be any of the axes A, B, C, D, or E of the linkage 40 or40′). Bearing 232 includes the boss 230 which is coupled to inner shaft233, which in turn is coupled to inner races 235 a and 235 b of ballbearing grooves 237 a and 237 b, respectively.

[0119] Bearing 234 includes outer housing 239 which is coupled to outerraces 241 a and 241 b of ball bearing grooves 237 a and 237 b,respectively. A number of balls 243 are provided in grooves 237 a and237 b and operate as a standard ball bearing or as bearing 200 of FIG.5a, i.e., balls 243 move in grooves 237 a and 237 b (or the races 235and 241 move relative to the balls) as the two bearings 232 and 234rotate relative to each other. Assembly 229 is preloaded with adhesiveor other fasteners to create a tight assembly. Thus, in the example ofFIGS. 5dl and 5 d 2, the member 48 is coupled to the boss 230 and innerraces 235 a and 235 b through fork 225, while the member 50 is coupledto the outer housing 234 and outer races 241 a and 241 b, thus allowingmember 48 and member 50 to rotate about axis C relative to each other.Bearing 224 provides low friction bearing and has very little play.

[0120] Bearing 224 is also well-suited to be used at axis A of thelinkage 40 or 40′, where members 44 and 48 are both rotatably coupled toground member 42 or ground 34 in the described embodiment such thatmember 48 is positioned above member 44. Bearing 224 can be stacked onanother bearing 224 at axis A, where the lower boss 230 a of the upperassembly 229 attached to member 48 can be inserted into the upper boss230 b of the lower assembly 229 attached to member 44, providing a rigidinner shaft between both assemblies 229 concentric around axis A. Anempty shaft can be provided through the assemblies 229 to allow a screwor other fastener to attach the assemblies 229 to ground member 42.

[0121]FIG. 5f 1 is a perspective view of another alternate bearing 234which can be used for some or all of the bearings of linkage 40 or 40′.For example, the bearing 234 can be used for bearing 56 or 58 of theembodiment of FIG. 2. Bearing 234 includes a V-shaped notch 236 whichmates with a V-shaped edge 238. The angle between the sides of notch 236is greater than the angle between the sides of edge 238 by an amountgreater than or equal to the desired range of angular motion provided bythe bearing 234. In addition, a web element 240 is provided in thecenter of notch 236 which corresponds and mates with a notch 242 inV-shaped edge 238. The web element 240 and notch 242 prevent theelements of the linkage connected by bearing 234 from moving out ofsubstantially planar relation to each other. FIG. 5f 2 shows the bearing234 when the elements of the linkage have been connected together. Thebearing provides smooth rotational motion of the elements with respectto each other about axis G with very little friction. The bearing 234can be held together, for example, by a spring element 244 (shownsymbolically) connected between two posts 246 on the connected elements.Other types of connections can preload the bearing to keep its partstogether in other embodiments.

[0122]FIG. 6 is a block diagram illustrating the electronic portion ofinterface 14 and host computer 18 suitable for use with the presentinvention. Mouse interface system 10 includes a host computer 18,electronic interface 100, mechanical apparatus 102, and mouse or otheruser object 12. Electronic interface 100, mechanical apparatus 102, andmouse 12 can also collectively be considered a “force feedback interfacedevice” 104 that is coupled to the host computer. A similar system isdescribed in detail in co-pending patent application Ser. No.08/566,282, which is hereby incorporated by reference herein in itsentirety.

[0123] As explained with reference to FIG. 1, computer 18 is preferablya personal computer, workstation, video game console, or other computingor display device. Host computer system 18 commonly includes a hostmicroprocessor 108, random access memory (RAM) 110, read-only memory(ROM) 112, input/output (I/O) electronics 114, a clock 116, a displaydevice 20, and an audio output device 118. Host microprocessor 108 caninclude a variety of available microprocessors from Intel, AMD,Motorola, or other manufacturers. Microprocessor 108 can be singlemicroprocessor chip, or can include multiple primary and/orco-processors. Microprocessor 108 preferably retrieves and storesinstructions and other necessary data from RAM 110 and ROM 112 as iswell known to those skilled in the art. In the described embodiment,host computer system 18 can receive sensor data or a sensor signal via abus 120 from sensors of system 10 and other information. Microprocessor108 can receive data from bus 120 using I/O electronics 114, and can useI/O electronics to control other peripheral devices. Host computersystem 18 can also output commands to interface device 104 via bus 120to cause force feedback for the interface system 10.

[0124] Clock 116 is a standard clock crystal or equivalent componentused by host computer 18 to provide timing to electrical signals used byhost microprocessor 108 and other components of the computer system 18.Clock 116 is accessed by host computer 18 in the control process of thepresent invention to provide timing information that may be necessary indetermining force or position, e.g., calculating a velocity oracceleration from position values.

[0125] Display device 20 is described with reference to FIG. 1. Audiooutput device 118, such as speakers, can be coupled to hostmicroprocessor 108 via amplifiers, filters, and other circuitry wellknown to those skilled in the art. Host processor 108 outputs signals tospeakers 118 to provide sound output to the user when an “audio event”occurs during the implementation of the host application program. Othertypes of peripherals can also be coupled to host processor 108, such asstorage devices (hard disk drive, CD ROM drive, floppy disk drive,etc.), printers, and other input and output devices.

[0126] Electronic interface 100 is coupled to host computer system 18 bya bi-directional bus 120. The bi-directional bus sends signals in eitherdirection between host computer system 18 and the interface device 104.Bus 120 can be a serial interface bus providing data according to aserial communication protocol, a parallel bus using a parallel protocol,or other types of buses. An interface port of host computer system 18,such as an RS232 serial interface port, connects bus 120 to hostcomputer system 18. In another embodiment, an additional bus 122 can beincluded to communicate between host computer system 18 and interfacedevice 13. Bus 122 can be coupled to a second port of the host computersystem, such as a “game port”, such that two buses 120 and 122 are usedsimultaneously to provide an increased data bandwidth.

[0127] One preferred serial interface bus used in the present inventionis the Universal Serial Bus (USB). The USB standard provides arelatively high speed serial interface that can provide force feedbacksignals in the present invention with a high degree of realism. USB canalso source power to drive actuators 64 and other devices of the presentinvention. Since each device that accesses the USB is assigned a uniqueUSB address by the host computer, this allows multiple devices to sharethe same bus. In addition, the USB standard includes timing data that isencoded along with differential data.

[0128] Electronic interface 100 includes a local microprocessor 130,local clock 132, local memory 134, sensor interface 136, and actuatorinterface 138. Interface 100 may also include additional electroniccomponents for communicating via standard protocols on buses 120 and122. In various embodiments, electronic interface 100 can be included inmechanical apparatus 102, in host computer 18, or in its own separatehousing. Different components of interface 100 can be included inapparatus 102 or host computer 18 if desired.

[0129] Local microprocessor 130 preferably coupled to bus 120 and may beclosely linked to mechanical apparatus 102 to allow quick communicationwith other components of the interface device. Processor 130 isconsidered “local” to interface device 104, where “local” herein refersto processor 130 being a separate microprocessor from any processors 108in host computer 18. “Local” also preferably refers to processor 130being dedicated to force feedback and sensor I/O of the interface system10, and being closely coupled to sensors and actuators of the mechanicalapparatus 102, such as within the housing of or in a housing coupledclosely to apparatus 102. Microprocessor 130 can be provided withsoftware instructions to wait for commands or requests from computerhost 18, parse/decode the command or request, and handle/control inputand output signals according to the command or request. In addition,processor 130 preferably operates independently of host computer 18 byreading sensor signals and calculating appropriate forces from thosesensor signals, time signals, and force processes selected in accordancewith a host command, and output appropriate control signals to theactuators. Suitable microprocessors for use as local microprocessor 200include the MC68HC711E9 by Motorola and the PIC16C74 by Microchip, forexample. Microprocessor 130 can include one microprocessor chip, ormultiple processors and/or co-processor chips. In other embodiments,microprocessor 130 can include digital signal processor (DSP)functionality.

[0130] For example, in one host-controlled embodiment that utilizesmicroprocessor 130, host computer 18 can provide low-level forcecommands over bus 120, which microprocessor 130 directly transmits tothe actuators. In a different local control embodiment, host computersystem 18 provides high level supervisory commands to microprocessor 130over bus 120, and microprocessor 130 manages low level force controlloops to sensors and actuators in accordance with the high levelcommands and independently of the host computer 18. In the local controlembodiment, the microprocessor 130 can process inputted sensor signalsto determine appropriate output actuator signals by following theinstructions of a “force process” that may be stored in local memory andincludes calculation instructions, formulas, force magnitudes, or otherdata. The force process can command distinct force sensations, such asvibrations, textures, jolts, or even simulated interactions betweendisplayed objects. An “enclosure” host command can also be provided,which causes the microprocessor to define a box-like enclosure in agraphical environment, where the enclosure has sides characterized bywall and texture forces. For example, an enclosure command can includeparameters to specify the size and location of the enclosure in thegraphical environment, the wall stiffness and width, surface texture andfriction of the wall, clipping, force characteristics of the interiorregion of the enclosure, scroll surfaces, and the speed of the userobject necessary to engage the forces of the enclosure. Themicroprocessor may locally determine whether the cursor is inside oroutside the enclosure, and characteristics of the enclosure arespecified in the command as parameters. The host can send the localprocessor a spatial layout of objects in the graphical environment sothat the microprocessor has a mapping of locations of graphical objectslike enclosures and can determine interactions with the cursor locally.Force feedback used in graphical environments is described in greaterdetail in co-pending patent application Ser. Nos. 08/571,606,08/1756,745, and ______, entitled, “Graphical Click Surfaces for ForceFeedback Applications”, by Rosenberg et al., filed Jun. 18, 1997, all ofwhich are incorporated by reference herein.

[0131] Sensor signals used by microprocessor 130 are also reported tohost computer system 18, which updates a host application program andoutputs force control signals as appropriate. For example, if the usermoves mouse 12, the computer system 18 receives position and/or othersignals indicating this movement and can move a displayed cursor inresponse. These embodiments are described in greater detail inco-pending application Ser. Nos. 08/534,791 and 08/566,282. In analternate embodiment, no local microprocessor 130 is included ininterface system 10, and host computer 18 directly controls andprocesses all signals to and from the interface 100 and mechanicalinterface 102.

[0132] A local clock 132 can be coupled to the microprocessor 130 toprovide timing data, similar to system clock 116 of host computer 18;the timing data might be required, for example, to compute forces outputby actuators 64 (e.g., forces dependent on calculated velocities orother time dependent factors). In alternate embodiments using the USBcommunication interface, timing data for microprocessor 130 can beretrieved from the USB interface.

[0133] Local memory 134, such as RAM and/or ROM, is preferably coupledto microprocessor 130 in interface 100 to store instructions formicroprocessor 130 and store temporary and other data. Microprocessor130 may also store calibration parameters in a local memory 134 such asan EEPROM. As described above, link or member lengths or manufacturingvariations in link lengths can be stored. Variations in coil winding ormagnet strength can also be stored. If analog sensors are used,adjustments to compensate for sensor variations can be included, e.g.implemented as a look up table for sensor variation over the user objectworkspace. Memory 134 may be used to store the state of the forcefeedback device, including a reference position, current control mode orconfiguration, etc.

[0134] Sensor interface 136 may optionally be included in electronicinterface 100 convert sensor signals to signals that can be interpretedby the microprocessor 130 and/or host computer system 18. For example,sensor interface 136 can receive signals from a digital sensor such asan encoder and convert the signals into a digital binary numberrepresenting the position of a member or component of mechanicalapparatus 14. An analog to digital converter (ADC) in sensor interface136 can convert a received analog signal to a digital signal formicroprocessor 130 and/or host computer 18. Such circuits, or equivalentcircuits, are well known to those skilled in the art. Alternately,microprocessor 130 can perform these interface functions without theneed for a separate sensor interface 136. Or, sensor signals from thesensors can be provided directly to host computer system 18, bypassingmicroprocessor 130 and sensor interface 136. Other types of interfacecircuitry 136 can also be used. For example, an electronic interface isdescribed in U.S. Pat. No. 5,576,727, which is hereby incorporated byreference herein.

[0135] Actuator interface 138 can be optionally connected between theactuators 64 and microprocessor 130. Interface 138 converts signals frommicroprocessor 130 into signals appropriate to drive the actuators.Interface 138 can include power amplifiers, switches, digital to analogcontrollers (DACs), and other components. Such interfaces are well knownto those skilled in the art. In alternate embodiments, interface 138circuitry can be provided within microprocessor 130 or in the actuators.

[0136] In the described embodiment, power is supplied to the actuators64 and any other components (as required) by the USB. Since theelectromagnetic actuators of the described embodiment have a limitedphysical range and need only output about 3 ounces of force to createrealistic force sensations on the user, very little power is needed. Bydrawing all of its required power directly off the USB bus, a largepower supply need not be included in interface system 10 or as anexternal power adapter. For example, one way to draw additional powerfrom the USB is to configure interface 100 and apparatus 102 to appearas more than one peripheral to host computer 18; for example, eachprovided degree of freedom of mouse 12 can be configured as a differentperipheral and receive its own allocation of power. Alternatively, powerfrom the USB can be stored and regulated by interface 100 or apparatus102 and thus used when needed to drive actuators 64. For example, powercan be stored over time and then immediately dissipated to provide ajolt force to the user object 12. A battery or a capacitor circuit, forexample, can store energy and discharge or dissipate the energy whenpower is required by the system and/or when enough power has beenstored. Alternatively, a power supply 140 can optionally be coupled toactuator interface 138 and/or actuators 64 to provide electrical power.Power supply 140 can be included within the housing of interface 100 orapparatus 102, or can be provided as a separate component, for example,connected by an electrical power cord. The power storage embodimentdescribed above, using a battery or capacitor circuit, can also be usedin non-USB embodiments to allow a smaller power supply 140 to be used.

[0137] Mechanical apparatus 102 is coupled to electronic interface 100preferably includes sensors 62, actuators 64, and linkage 40. Thesecomponents are described in detail above. Sensors 62 sense the position,motion, and/or other characteristics of mouse 12 along one or moredegrees of freedom and provide signals to microprocessor 130 includinginformation representative of those characteristics. Typically, a sensor62 is provided for each degree of freedom along which mouse 12 can bemoved, or, a single compound sensor can be used for multiple degrees offreedom. Example of sensors suitable for embodiments described hereinare optical encoders, as described above. Linear optical encoders maysimilarly sense the change in position of mouse 12 along a linear degreeof freedom. Alternatively, analog sensors such as potentiometers can beused. It is also possible to use non-contact sensors at differentpositions relative to mechanical apparatus 100, such as Hall effectmagnetic sensors for detecting magnetic fields from objects, or anoptical sensor such as a lateral effect photo diode having anemitter/detector pair. In addition, velocity sensors (e.g., tachometers)for measuring velocity of mouse 12 and/or acceleration sensors (e.g.,accelerometers) for measuring acceleration of mouse 12 can be used.Furthermore, either relative or absolute sensors can be employed.

[0138] Actuators 64 transmit forces to mouse 12 in one or moredirections along one or more degrees of freedom in response to signalsoutput by microprocessor 130 and/or host computer 18, i.e., they are“computer controlled.” Typically, an actuator 64 is provided for eachdegree of freedom along which forces are desired to be transmitted.Actuators 64 can include two types: active actuators and passiveactuators. Active actuators include linear current control motors,stepper motors, pneumatic/hydraulic active actuators, a torquer (motorwith limited angular range), a voice coil actuator as described in theembodiments above, and other types of actuators that transmit a force toan object. Passive actuators can also be used for actuators 64, such asmagnetic particle brakes, friction brakes, or pneumatic/hydraulicpassive actuators, and generate a damping resistance or friction in adegree of motion. For example, an electrorheological fluid can be usedin a passive damper, which is a fluid that has a viscosity that can bechanged by an electric field. Likewise, a magnetorheological fluid canbe used in a passive damper, which is a fluid that has a viscosity thatcan be changed by a magnetic field (and typically requires less powerthan an electrorheological fluid). These types of dampers can be usedinstead of or in addition to other types of actuators in the mouseinterface device. In yet other embodiments, passive damper elements canbe provided on the bearings of apparatus 100 to remove energy from thesystem and intentionally increase the dynamic stability of themechanical system. In addition, in voice coil embodiments, multiple wirecoils can be provided, where some of the coils can be used to provideback EMF and damping forces. In some embodiments, all or some of sensors62 and actuators 64 can be included together as a sensor/actuator pairtransducer.

[0139] Mechanism 40 is preferably the five-member linkage 40 describedabove, but can also be one of several types of mechanisms. For example,mechanisms disclosed in co-pending patent application Ser. Nos.08/374,288, 08/400,233, 08/489,068, 08/560,091, 08/623,660, 08/664,086,08/709,012, and 08/736,161, all incorporated by reference herein, can beincluded. Mouse 12 can alternatively be a puck, joystick, or otherdevice or article coupled to linkage 40, as described above.

[0140] Other input devices 141 can optionally be included in system 10and send input signals to microprocessor 130 and/or host computer 18.Such input devices can include buttons, such as buttons 15 on mouse 12,used to supplement the input from the user to a GUI, game, simulation,etc. Also, dials, switches, voice recognition hardware (with softwareimplemented by host 18), or other input mechanisms can be used.

[0141] Safety or “deadman” switch 150 is preferably included ininterface device to provide a mechanism to allow a user to override anddeactivate actuators 64, or require a user to activate actuators 64, forsafety reasons. Certain types of actuators, especially active actuators,can pose a safety issue for the user if the actuators unexpectedly movemouse 12 against the user with a strong force. In addition, if a failurein the system 10 occurs, the user may desire to quickly deactivate theactuators to avoid any injury. To provide this option, safety switch 150is coupled to actuators 64. In the preferred embodiment, the user mustcontinually activate or close safety switch 150 during manipulation ofmouse 12 to activate the actuators 64. If, at any time, the safetyswitch is deactivated (opened), power is cut to actuators 64 (or theactuators are otherwise deactivated) as long as the safety switch isopened. For example, one embodiment of safety switch is a mechanical oroptical switch located on mouse 12 or on a convenient surface of ahousing 26. For example, when the user covers an optical safety switchwith a hand or finger, the sensor of the switch is blocked from sensingambient light, and the switch is closed. The actuators 64 thus willfunction as long as the user covers the switch. Other types of safetyswitches 150 can also be used, such as an electrostatic contact switchcan be used to sense contact of the user. A preferred safety switch isdescribed with reference to FIG. 7b. The safety switch can be providedbetween the actuator interface 138 and actuators 64 as shown in FIG. 6;or, the switch can be placed elsewhere. In some embodiments, the stateof the safety switch is provided to the microprocessor 130 to providefurther control over output forces. In addition, the state of the safetyswitch can be sent to the host 18, which can choose to stop sendingforce feedback commands if the safety switch is open. In yet otherembodiments, a second switch can be provided to allow the user to turnoff output forces of interface device 13 when desired, yet still operatethe interface as an input device. The host 18 need not send forcefeedback commands when such a secondary switch has turned off forces.

[0142] In some embodiments of interface system 10, multiple mechanicalapparatuses 102 and/or electronic interfaces 100 can be coupled to asingle host computer system 18 through bus 120 (or multiple buses 120)so that multiple users can simultaneously interface with the hostapplication program (in a multi-player game or simulation, for example).In addition, multiple players can interact in the host applicationprogram with multiple interface systems 10 using networked hostcomputers 18, as is well known to those skilled in the art.

[0143]FIG. 7a is a perspective view of a mouse 12 suitable for use withthe present invention. Mouse 12 can be shaped to comfortably fit auser's fingers and/or hand when the user manipulates the mouse, e.g.,mouse 12 can be shaped much like a standard mouse used for inputtinginformation to a computer system. The mouse 12 can take a variety ofshapes in different embodiments, from a small knob or sphere to a griphaving indentations for the user's fingers.

[0144] Mouse 12 may include other input devices 141 such as buttons 15which are within easy reach of a user's fingers. Additional buttons,such as button 15 a, may also be included on the top surface or on theside surfaces of mouse 12 for added functionality. Buttons 15 allow auser to input a command independently of the position of the mouse 12 inthe provided degrees of freedom. For example, in a GUI, buttons arecommonly used to select options once a cursor has been guided to adesired area or object on the screen using the position of the mouse. Inone embodiment, the user can place his or her two middle fingers onbuttons 15 and place the remaining fingers on the sides of mouse 12 (andat button 15 a) to manipulate mouse 12 against forces generated byactuators 64. In addition, in some configurations with a smaller-sizemouse 12, the fingers 247 of a user may move the mouse 12 and pressbuttons 15 while the palm 248 of the hand remains fixed or restingagainst a grounded surface. Since the fingers are more sensitive tooutput forces than the entire hand, forces of less magnitude may beoutput from the interface system 10 to the fingers and achieve anequivalent force sensation to higher magnitude forces applied to theentire hand (as with a joystick). Thus, less powerful actuators and lesspower consumption by the actuators is required when the user manipulatesthe mouse 12 with fingers alone.

[0145] As shown in FIG. 7b, mouse 12 may also include a safety switch150 (also known as a “deadman switch”). The safety switch preferablydeactivates any generated forces on the puck when the puck is not in useand/or when the user desires to deactivate output forces. As describedabove, the safety switch can be implemented in a variety of ways. InFIG. 7b, a preferred way to implement a safety switch 150 is to use ahand-weight safety switch 250. As implemented, the user must activate orclose the switch before actuators 64 are able to output forces. This isa safety feature that prevents the mouse 12 from unexpectedly moving andimpacting the user when the user is not controlling the user object.

[0146] Mouse 12′ including safety switch 250 includes a grip portion252, a base 254, a spring 256, and switch contacts 258. Portion 252 maybe shaped like mouse 12 described above, but can also be replaced withother types of user objects 12. Portion 252 can be moved up and downalong axis F within a range distance d of the base 254 preferably on anextension member 260 or other similar guide. Distance d is preferablyrelatively small, such as 1 millimeter, and is exaggerated in FIG. 7bfor clarity. Pre-loaded spring 186 preferably forces grip portion 252away from base 254 in a direction indicated by arrow 262 to an “open”position when no weight is placed on portion 252. Preferably, a stop(not shown) coupled to the top of member 260 or to the bottom of portion252 prevents the grip portion 252 from being detached from the base 254.A limit to movement of portion 252 in the direction of base 254 isprovided by the physical engagement of the grip portion and base.

[0147] A z-axis force sensor can also be used to measure how hard theuser is pushing down on the mouse 12. One example of such a sensor isshown in FIG. 4e. Other types of sensors also can be used, such as piezoelectric sensors, force sensitive resistors, and strain gauges. Anyz-axis pressure or force can also affect forces on the user object suchas friction forces, as explained with reference to FIG. 4e. When using aforce sensor as a safety switch, the microprocessor (or host) can checkfor a minimum threshold pressure on the user object; if the pressure isbelow the threshold, the actuators are deactivated.

[0148] Switch contacts 258 are provided between the base 254 and gripportion 252 of mouse 12.′Contacts 258 are connected by a bus to the hostcomputer 18 or microprocessor 130, which can monitor when the contactsare touching. When the grip portion 252 is in the open position,contacts 258 are separated and no electrical current can flow betweenthem, and thus no electrical current or power can flow to the actuatorsfrom the power supply. Alternatively, contacts 258 can be connected tomicroprocessor 130 or another selecting component which can detect theopen state of the contacts and can deactivate actuators 64 with a safetydisable signal when the open state is detected. The actuators 64 arethus prevented from outputting forces when the user does not havecontrol of the grip portion 252 and the interface system 10.

[0149] When a user grasps portion 252, the weight of the user's handforces the grip portion 252 down to engage the base 254. Switch contacts258 connect from this engagement and allow current to flow between them.Contacts 258 complete the circuit from the actuators to the powersupply, and power is thus allowed to flow from the power supply to theactuators. Alternatively, microprocessor 130 detects the closed contactcondition and discontinues sending a safety disable signal to actuators64. This allows the actuators 64 to be controlled and activated by hostcomputer 18 and microprocessor 130 normally. When the user releases thegrip portion from his or her grasp, the spring 256 forces the gripportion 252 away from base 254, which separates contacts 258 anddeactivates the actuators.

[0150] The hand-weight safety switch has several advantages over othertypes. of safety switches. The user can simply rest his or her fingersor hand on mouse 12′ in a normal, comfortable fashion and still activatethe safety switch due to the weight of the user's hand. Thus, the userneed not cover or press an awkwardly-located switch in a particularlocation of the mouse.

[0151] In alternate embodiments, other types of safety switches may beused. For example, a mechanical button safety switch similar to buttons15 can be provided which makes an electrical contact when the weight ofthe user's hand presses on the puck. Contact switches, light detectors,and other types of switches which the user contacts or covers duringoperation of the user object can be provided, but may be more awkward touse during operation of the user object since the user must constantlycontact or cover a specific area of the user object or device housing.Hand-weight safety switch 252 can also be used to supplement a differenttype of safety switch.

[0152]FIG. 7c is a diagram for illustrating an indexing feature of thepresent invention. The mouse 12 preferably has an “indexing mode” whichallows the user to redefine the offset between the positions of themouse 12 and a user-controlled graphical object, such as a cursor,displayed by host computer 18. Indexing is inherently provided with atraditional position control interface such as a mouse. For example, ina GUI, the position of the mouse controls the position of a cursor inthe GUI. Sometimes, a limit to the mouse's movement is reached, such asa limit to available physical space, a limit to a mousepad, etc. In sucha situation, the user typically lifts the mouse from the contactedsurface and places the mouse in a different position to allow more roomto move the mouse. While the mouse is off the contacted surface, noinput is provided to control the cursor.

[0153] Mouse 12 of the present invention has a similar limit to movementin the provided planar workspace. The limit, in the describedembodiment, is provided by guide opening 76 and guide pin 78, asdetailed above. In other embodiments, the limits may be dictated bymechanical apparatus 102, actuators 64, or linkage 40; e.g., the limitsof the movement of portions 80 of the voice coil actuators 64. Thelimits are indicated as dashed lines 266 in FIG. 7c such that the mouse12 has a workspace 268 within the dashed rectangle (or circle or othershape, as desired).

[0154] In the preferred embodiment, the workspace 268 is small (e.g.,0.9″ ×0.9″), since it has been found that very little workspace isneeded to move a cursor across the full width or length of a displayscreen. Nevertheless, a limit 266 to the movement of mouse 12 may bereached in a situation where the user wishes to move the puck past thelimit. For example, mouse 12 may reach the right limit 266 a before thecontrolled cursor is fully moved to a desired location at the right ofthe screen. In other situations, the user might desire to repositionmouse 12 without providing any input to the graphical environment ofhost computer 18, such as to reposition mouse 12 to a more comfortableposition, etc.

[0155] To allow movement past the limits 266, “indexing” is implemented.This allows the user to reposition the mouse 12 without moving thecontrolled graphical object or providing any other input to the hostcomputer, thus allowing the user to redefine the offset between theobject's position and the cursor's position. Since the mouse 12 does notcontact or roll over a surface like a traditional mouse, the mouse 12cannot simply be picked up and repositioned. In the present invention,indexing is achieved through an input device 141. Such input devices caninclude one or more buttons, switches, pressure sensors, opticalsensors, contact sensors, voice recognition hardware, or other inputdevices. For example, a specialized indexing button can be providedwhich can be pressed by the user; such a button can be a traditionalbutton 15 or 15 a or a hand weight switch 250. As long as the indexingbutton is activated, the mouse 12 is in indexing mode and can be movedwithout providing any input to the host computer (e.g., without movingthe controlled graphical object). When the button is released (ordeactivated) and non-indexing mode is resumed, the position of thecursor is again controlled by the position of the mouse 12.

[0156] Alternatively, the user might toggle indexing mode andnon-indexing mode with one press of a button 15 or other input device.Thus, the user can move mouse 12 to a desired position in the planarworkspace without providing input.

[0157] In one preferred embodiment, the functionality of the safetyswitch 250 and the indexing mode are integrated into one input device,since it is typically desirable to deactivate any output forces to themouse 12 when indexing is being performed for safety reasons orergonomic reasons, e.g. forces intuitively should not be output whenindexing occurs. Preferably, the hand weight safety switch 250 shown inFIG. 7b can be used as both a safety switch and an indexing switch. Forexample, when the user places his or her fingers on mouse 12, the switch250 is closed, allowing power to the actuators and forces to be outputon the mouse. This also allows non-indexing mode to be active so thatpositions of cursor and mouse are directly mapped. If the user moves themouse to a limit 266, the user then lifts up on the mouse or otherwiseperforms the indexing function. This opens switch 250, thereby disablingpower to the actuators and engaging indexing mode. The user can movemouse 12 to another position using side motion (so as to not closeswitch 250), while the cursor remains fixed at its old position on thescreen. When the mouse is at its new desired location, the user restshis or her fingers on the mouse 12 normally, thereby closing the switch250. This allows indexing to be performed safely, without the need toprovide a separate safety switch to deactivate the actuators 64. If az-axis force sensor is used for indexing, then the microprocessor orhost can check for a threshold pressure. If the exerted pressure isbelow the threshold, indexing is active. A different threshold forindexing and for the safety switch can be implemented if desired;typically, the threshold for the safety switch would be lower. A localsensor might check for these threshold pressures, such as a Schmitttrigger, or the microprocessor can check for the threshold pressures. Ifthe microprocessor checks, then the user preferably can input preferredthresholds to customize the interface device for his or her own use.

[0158] Indexing mode can be performed directly by the host computer 18.However, in the preferred embodiment, local microprocessor 130 performsthe indexing function. For example, local processor 130 can determinewhen indexing mode is active, and simply not report the position of themouse 12 to the host computer 18 while such mode is active. Whennon-indexing mode is active, processor 130 would resume reporting theposition of the user object to the host.

[0159] The host is thus completely ignorant of when indexing isperformed, since it simply updates cursor position when it receivesposition data. The host does not have to detect or keep track of whenindexing mode is active, thereby reducing its computational burden.

[0160]FIG. 8a is a perspective view of an alternate embodiment of userobject 12. Object 12 is shown as a stylus-receiving user object 270,which can be coupled to any embodiment of mechanical apparatus 102, suchas those embodiments presented above. Stylus-receiving user object 270includes a stylus-receiving member 272, which is preferably a flat,small object that includes a stylus aperture 274. Member 272 may, forexample, be coupled to object member 50 of the embodiment of mechanicalapparatus 102. As shown in FIG. 8b, a stylus 276 or a similar articlecan be inserted into aperture 274 by a user. The user can then move thestylus 276 along a provided degree of freedom indicated by arrows 278,which causes member 272 to accordingly move in the same direction.Alternatively, stylus 276 can be permanently coupled to member 272.

[0161] The embodiment of FIGS. 7a-b can be used in a writing interfaceversion of interface system 10 where the user uses the interface towrite words input to a computer system, or in a pointing interface todirect and move computer-implemented objects such as a cursor. Themember 272 alone can be considered the “user object” 12 in thisembodiment. Alternatively, both stylus 276 and member 272 cancollectively be considered user object 12, particularly in embodimentswhere stylus 276 is permanently fixed to member 272. In otherembodiments, the member 272 can be detachable from mechanical apparatus102 so as to allow different, interchangeable user objects 12 to be usedas suited for particular applications.

[0162]FIG. 8c is a perspective view of an alternate embodiment of userobject 12 in which a finger-receiving user object 280 is provided. Inthis embodiment, a finger-receiving member 282, which includes a divot284. Member 282 may be coupled to apparatus 102 similarly to the member272 of FIG. 8a. As shown in FIG. 8d, a user may insert his or her finger288 into divot 284 and thereby move member 222 in the provided degreesof freedom as indicated by arrows 286. Divot 284 allows the user'sfinger 288 to grip or cling to the member 282 when the user's finger ismoved. In other embodiments, features other than or in addition to divot284 can be provided on finger-receiving member 282 to allow the user'sfinger to cling to the object. For example, one or more bumps,apertures, or other projections can be provided. Also, other digits orappendages of the user can be received, such as a user's entire hand,foot, etc. The user object of FIGS. 7c-d can be used to allow the userto move, point to, or otherwise manipulate computer generated objects inan easy, natural fashion. The stylus and finger-receiving objects ofFIGS. 7a-7 d can also be made interchangeable with the mouse object 12so that the user can simply attach the desired user object for aparticular application.

[0163]FIG. 8e is a perspective view of an alternate embodiment 290 ofthe finger-receiving object 280 of FIGS. 8c-8 d. Object 290 includes aflat planar member 292 that, for example, may resemble a plastic card orother platform. Member 292 is (rigidly) coupled to object member 50, andmay be rotatably coupled to the object member in some embodiments. Theuser may place one or more fingers on the planar member 292 similar tothe object 280 and move it in a planar workspace. In addition, theplanar member 292 can include a rubber or similar surface havingfriction to provide a grip or non-slippery contact between the user'sfingers and the member. Also, the planar member 292 can be contoured orinclude bumps 294 or other protrusions to further promote the user'scontact.

[0164] While this invention has been described in terms of severalpreferred embodiments, it is contemplated that alterations, permutationsand equivalents thereof will become apparent to those skilled in the artupon a reading of the specification and study of the drawings. Forexample, other types of mechanical linkages can be provided between themouse 12 and the electronic portion of the interface 14. In addition,other types of actuators, sensors, and user objects can be used in otherembodiments. Furthermore, certain terminology has been used for thepurposes of descriptive clarity, and not to limit the present invention.It is therefore intended that the following appended claims include allsuch alterations, permutations, and equivalents as fall within the truespirit and scope of the present invention.

What is claimed is:
 1. A mouse interface device for interfacing a user'smotion with a host computer and providing force feedback to said user,said mouse interface device comprising: a mouse object contacted andmanipulated by a user and moveable in a planar workspace with respect toa ground surface; a planar linkage including a plurality of membersrotatably coupled to each other, said linkage including a first membercoupled to said mouse object and a second member coupled to said groundsurface; two electromagnetic actuators providing forces in said planarworkspace of said mouse object, said forces caused by interactionsbetween an electric field and a magnetic field, wherein each of saidactuators includes a coil portion integrated with one of said members ofsaid linkage and a magnet portion coupled to said ground surface throughwhich said moveable portion moves, and wherein said actuators arecontrolled from commands output by said host computer; at least onesensor coupled to said ground surface and separate from said twoactuators, said sensor detecting movement of said moveable portion ofone of said actuators, wherein said sensor provides a sensor signalincluding information describing said movement of said moveable portionfrom which a position of said mouse object in said planar workspace canbe determined.
 2. A mouse interface device as recited in claim 1 whereinsaid planar linkage includes four members coupled to a ground member. 3.A mouse interface device as recited in claim 2 wherein said linkage isarranged such that a first base member is rotatably coupled to a groundmember, a link member is rotatably coupled to said base member, a secondbase member is rotatably coupled to said ground member, and an objectmember is rotatably coupled to said link member and said second basemember, wherein said mouse object is coupled to said object member.
 4. Amouse interface device as recited in claim 3 wherein said first basemember and said second base member pivot about a single axis withrespect to ground member.
 5. A mouse interface device as recited inclaim 3 wherein said first base member and said second base member arerotatably coupled to said ground member, and wherein said link member isrotatably coupled to a mid-portion of said object member.
 6. A mouseinterface device as recited in claim 5 wherein said moveable portion ofone of said actuators is an end of said first base member, wherein oneof said wire coils is integrated in said end of said first base member,and wherein said moveable portion of the other one of said actuators isan end of said second base member, wherein the other one of said wirecoils is integrated in said end of said second base member.
 7. A mouseinterface device as recited in claim 4 wherein said magnet portion ofone of said actuators is coupled to said magnet portion of said otheractuator such that a common flux path between said magnet portions isshared by both magnet portions.
 8. A mouse interface device as recitedin claim 3 wherein said first and second base members are coupled to arotation point at a mid point of said base members, where one end ofeach base member integrates said coil such that said coil is spaced fromsaid rotation point of said member, thereby providing mechanicaladvantage to forces generated by said actuator on said base members. 9.A mouse interface device as recited in claim 6 wherein said sensors aredigital encoders.
 10. A mouse interface device as recited in claim 9wherein said ends of said first base member and said second base memberinclude an encoder arc having a number of equally spaced marks provided,said marks being detected by said encoders when said member moves.
 11. Amouse interface device as recited in claim 6 wherein said sensors arelateral effect photo diodes including an emitter and a detector.
 12. Amouse interface device as recited in claim 3 wherein said mouse objectis rotatably coupled to said object member.
 13. A mouse interface deviceas recited in claim 12 wherein said mouse object rotates about an axisof rotation though said object member, said axis of rotation beingperpendicular to said ground surface.
 14. A mouse interface device asrecited in claim 2 further comprising a stop mechanism for limitingmovement of said mouse object in four directions in said planarworkspace to a desired area.
 15. A mouse interface device as recited inclaim 14 wherein said stop mechanism includes a guide opening providedin said ground surface and a guide pin coupled to said linkage, whereinsaid guide pin engages sides of said guide opening to provide saidlimits to said movement in said planar workspace.
 16. A mouse interfacedevice as recited in claim 2 further comprising a safety switch thatcauses said actuators to be deactivated when said user is not contactingsaid mouse object.
 17. A mouse interface device as recited in claim 16wherein said safety switch is a contact switch opened when said userremoves weight of his or her fingers from said mouse object.
 18. A mouseinterface device as recited in claim 2 wherein said interface device andsaid host computer communicate using a Universal Serial Bus (USB), andwherein power to drive said actuators is retrieved from said USB.
 19. Amouse interface device as recited in claim 3 further comprising a localmicroprocessor, separate from said host computer system and coupled tosaid host computer system by a communication bus, said microprocessorreceiving sensor signals from said sensors and sending output controlsignals to said actuators to control a level of force output by saidactuators.
 20. A mouse interface device as recited in claim 3 whereinsaid mouse object is supported by a support separate from said linkageand provided between said mouse object and said ground surface.
 21. Amouse interface device as recited in claim 20 wherein said mouse objectis supported by low friction Teflon pad.
 22. An interface device forproviding force feedback to a user of said interface device, wherein ahost computer is coupled to said interface device and implements agraphical environment with which said user interacts, said interfacedevice comprising: a user object physically contacted and manipulated bya user in two degrees of freedom with respect to a ground surface; amechanical support linkage including a plurality of members, saidsupport linkage coupled to said user object and providing said twodegrees of freedom, said linkage including two base members coupled tosaid ground surface; a plurality of voice coil actuators, each of saidactuators including a wire coil integrated with one of said base membersof said linkage, wherein said wire coil moves through a magnetic fieldprovided by a plurality of grounded magnets surrounding said wire coil,and wherein a housing providing a flux path surrounds said magnets, eachof said wire coils being coupled to an end of a different member of saidsupport linkage, said coils guided through said magnetic field by saidlinkage; and a sensor detecting movement of said members having saidwire coils, wherein said sensor includes an emitter that emits a beam ofenergy and a detector that detects said beam, wherein both said emitterand said detector of said sensor are coupled to said ground surface. 23.An interface device as recited in claim 22 , wherein said mechanicalsupport linkage provides said two degrees of freedom substantially in asingle plane.
 24. An interface device as recited in claim 23 whereinsaid mechanical support linkage is a closed loop five bar linkage. 25.An interface device as recited in claim 24 wherein both said coils pivotabout a single axis of rotation.
 26. An interface device as recited inclaim 24 wherein said base members pivot about a single axis ofrotation.
 27. An interface device as recited in claim 25 wherein saidmagnets are stacked and share a magnetic flux-path.
 28. An interfacedevice as recited in claim 24 further comprising a support coupled tosaid user object that supports said user object on said ground surfacein addition to said support linkage.
 29. An interface device as recitedin claim 24 wherein said two grounded actuators are coupled together andare provided as a single unit.
 30. An interface device as recited inclaim 23 wherein said sensors include a roller frictionally engaged withsaid members having said wire coils and an encoder wheel for passingbetween said emitter and said detector.
 31. An interface device asrecited in claim 23 further comprising an indexing input device allowingsaid user to change the offset between a position of said user objectand a location of a cursor displayed on a display screen by disablingthe mapping between said cursor and said user object.
 32. A forcefeedback mouse interface for interfacing with a host computer systemimplementing a graphical environment, the force feedback mouse interfacecomprising: a mouse object resting on a planar grounded surface to bephysically contacted by a user and moved in two degrees of freedom in aplanar workspace, said workspace having predetermined limits tomovement; a planar closed loop linkage coupling said mouse object tosaid grounded surface and allowing movement of said mouse object in saidtwo degrees of freedom, said linkage including a plurality of members,each of said members rotatably coupled to two others of said members;two grounded voice coil actuators, each of said actuators including awire coil provided on a different member of said linkage, each of saidwire coils pivoting about a single axis of rotation, wherein each ofsaid actuators includes a plurality of grounded magnets in a flux pathhousing surrounding said wire coil, wherein said housing of one of saidactuators is positioned above and contacting said housing of said otheractuator, and wherein each of said actuators is receptive to a controlsignal operative to control an output force from said actuator on saidmember having said wire coil; at least one grounded sensor, said sensorsdetecting motion of said mouse object in said two degrees of freedom,said sensor outputting a sensor signal indicative of said motion.
 33. Aforce feedback mouse as recited in claim 32 further comprising a supportresting on said grounded surface that supports said mouse object.
 34. Aforce feedback mouse interface as recited in claim 32 wherein said atleast one grounded sensor includes two grounded sensors, each of saidsensors including an emitter of a beam of electromagnetic energy and adetector that detects said beam, wherein said sensors detect motion ofsaid members having said wire coils, said sensors outputting a sensorsignal indicative of said motion.
 35. A force feedback mouse interfaceas recited in claim 34 wherein each of said sensors includes a groundedemitter and a grounded detector.
 36. A force feedback mouse interface asrecited in claim 32 wherein said at least one grounded sensor includes aplanar sensor pad for sensing the location of contact with a pointercoupled to said linkage.
 37. A force feedback mouse interface as recitedin claim 36 wherein said planar sensor pad senses a magnitude of forceprovided against said sensor pad in a direction perpendicular to saidtwo degrees of freedom of said mouse object.
 38. A force feedback mouseinterface as recited in claim 32 wherein said wire coils and saidgrounded magnets of said actuators are used as said at least onegrounded sensor to sense a velocity of said members on which said coilsare provided.
 39. A force feedback mouse interface as recited in claim32 wherein said sensor includes an emitter of a beam of electromagneticenergy and a detector that detects said beam, wherein said beam isguided to said detector by a light pipe, said sensor outputting a sensorsignal indicative of said motion.
 40. A force feedback mouse interfaceas recited in claim 32 wherein said sensor includes an emitter of a beamof electromagnetic energy and a detector that detects said beam, whereina flexible light guide guides said beam from said emmitter to saiddetector.
 41. An interface for providing force feedback and interfacingwith a host computer system implementing a graphical environment, theinterface comprising: a mouse object resting on a planar groundedsurface to be physically contacted by a user and moved in two degrees offreedom in a planar workspace, said workspace having predeterminedlimits to movement of said mouse object; a planar closed loop linkagecoupling said mouse object to said grounded surface at one location onsaid grounded surface and allowing movement of said mouse object in saidtwo degrees of freedom, said linkage including a plurality of membersrotatably coupled together by bearings, each of said members rotatablycoupled to two others of said members; two grounded actuators, each ofsaid actuators providing a force in said two degrees of freedom; atleast one grounded sensor, said sensors detecting motion of said mouseobject in said two degrees of freedom, said sensor outputting a sensorsignal indicative of said motion.
 42. An interface device as recited inclaim 41 wherein said bearings of said linkage include at least onebearing assembly providing a plurality of layers of balls in grooves.43. An interface device as recited in claim 41 wherein said bearings ofsaid linkage include at least one snap bearing that includes acylindrical boss coupled to one member which rotates within acylindrical cavity of another member, said boss held to said cavity by aspring force.
 44. An interface device as recited in claim 41 whereinsaid bearings of said linkage include at least one snap bearing thatincludes a cylindrical cavity coupled to one member and a bearingassembly coupled to another member, said bearing assembly including aboss held to said cavity by a spring force, said bearing assemblyincluding two bearings rotatable with respect to each other.
 45. Aninterface device as recited in claim 41 wherein said bearings of saidlinkage include at least one bearing having a V-shaped edge on onemember that rotates within a V-shaped groove of another member.
 46. Aninterface device as recited in claim 41 wherein said actuators eachincludes a wire coil pivoting about a single axis of rotation, whereineach of said actuators includes a plurality of grounded magnets in aflux path housing surrounding said wire coil, wherein each of saidactuators is receptive to a control signal operative to control anoutput force from said actuator on said member having said wire coil.